Here's a simple one you can hack to fit your needs.
This a file for generating the captcha image.
<?php
/**
* Makes graphical image of supplied number argument
*/
session_start();
$num_str= $_SESSION['scode_show'];
if(isset($_GET['scode'])) $num_str= $_GET['scode'];
header ("Content-type: image/jpeg");
// $width = 60; //Box size, adjust as required
// $height = 34;
// $font= 'gogobig.gdf'; //pick one
$font= 'addlg10.gdf';
// $font= 'automatic.gdf';
// $font= 5; //default
$font = imageloadfont($font);
$height= imagefontheight($font) + 6;
$width= imagefontwidth($font)*strlen($num_str)+6;
$src = @imagecreate($width, $height) or die("Cannot Initialize new GD image
stream");
$background_color = imagecolorallocate($src, 200, 200, 200);
$text_color = imagecolorallocate($src, 20, 20, 255);
imagestring($src, $font, 3, 3, $num_str, $text_color);
imagejpeg($src);
imagedestroy($src);
?>
This is the code snippet for your client page:
/**
* This is a typical use of the catcha code
*
*
*/
//**** Security Code ***********/
$sid= session_id(); //See if session handler exists
if(empty($sid)) session_start(); //This also places a session cookie, if
enabled by client's browser
$scode= rand(100, 999); //pick the range as you like. 100 to 999 is
probably sufficent
$_SESSION['scode'];
$prev_scode= $_SESSION['scode_show']; //This is the scode the user saw
previously and was to enter
$_SESSION['scode_show']= $scode; //Set an new scode; this is used by
make_scode_img.php for the label graphic generation
$scode_passed= (isset($_SESSION['scode_passed']))? TRUE:FALSE;
//print_r($_SESSION);
if(!$scode_passed && isset($_POST['scode']) && $_POST['scode']== $prev_scode)
$scode_passed= TRUE; //If not set, see if passed
$scode_txt= NULL; //So can be used without a if() test
if(!$scode_passed){
$len= strlen($scode)+2;
$scode_txt .= <<<txt
<form enctype="multipart/form-data" action="{$_SESSION['PHP_SELF']}"
name="interview" method="post">
<p>To prevent SPAM, we need you to enter this security number in the box on the
right and key Submit.
<img style="margin-right:2em; border:blue 2px solid" src="make_scode_img.php"
alt="missing img file">
<input style="margin-right:2em; font-size:10pt" type="text" maxlength= "$len"
size="$len" name="scode", value="">
<input style="font-size:11pt" type="submit" name="scode_submit" value="Submit">
</p>
</form>
</body>
</html>
txt;
}
/**
* Note, put this code in the html where you want the log-in to be rendered.
Notice, it has an exit; You don't need the if() you don't
* need the exit. $code_txt is NULL unless the $scode_passed is TRUE.
* <?php
* if(!$scode_passed) {
* echo "<p>$scode_txt</p>\n\n";
* exit; //This ends the page
* }
* ?>
*/
if($scode_passed){
Tony Di Croce wrote:
I need a CAPTCHA script.... Which one is the best? (I dont mind if its
somewhat difficult).
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php