lostprophetpunk Posted August 7, 2008 Share Posted August 7, 2008 I am trying to use captcha to make my registration form safer. The only thing that is going wrong is that the captcha image is not showing... My host has a GD2 library, so it should work...shouldn't it? This is the code in a seperate file... <?php session_start(); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); function _generateRandom($length=6) { $_rand_src = array( array(48,57) //digits , array(97,122) //lowercase chars // , array(65,90) //uppercase chars ); srand ((double) microtime() * 1000000); $random_string = ""; for($i=0;$i<$length;$i++){ $i1=rand(0,sizeof($_rand_src)-1); $random_string .= chr(rand($_rand_src[$i1][0],$_rand_src[$i1][1])); } return $random_string; } $im = @imagecreatefromjpeg("captcha.jpg"); $rand = _generateRandom(3); $_SESSION['captcha'] = $rand; ImageString($im, 5, 2, 2, $rand[0]." ".$rand[1]." ".$rand[2]." ", ImageColorAllocate ($im, 0, 0, 0)); $rand = _generateRandom(3); ImageString($im, 5, 2, 2, " ".$rand[0]." ".$rand[1]." ".$rand[2], ImageColorAllocate ($im, 255, 0, 0)); Header ('Content-type: image/jpeg'); imagejpeg($im,NULL,100); ImageDestroy($im); ?> This is my test page... <?php session_start() ?> <form method="post" action=""> <table bgcolor="#CCCCCC"> <tr><th>Contact us (Post new message):</th></tr> <tr><td><textarea cols="30" rows="5" name="message"></textarea></td></tr> <tr><td align="center">CAPTCHA:<br> (antispam code, 3 black symbols)<br> <table><tr><td><img src="captcha.php" alt="captcha image"></td> <td><input type="text" name="captcha" size="3" maxlength="3"></td></tr></table> </td></tr> <tr><th align="center"><input type="submit" value="Submit"></th></tr> </table> </form> <?php if(isset($_POST["captcha"])) if($_SESSION["captcha"]==$_POST["captcha"]) { //CAPTHCA is valid; proceed the message: save to database, send by e-mail ... echo 'CAPTHCA is valid; proceed the message'; } else { echo 'CAPTHCA is not valid; ignore submission'; } ?> Quote Link to comment Share on other sites More sharing options...
DarkWater Posted August 7, 2008 Share Posted August 7, 2008 If you navigate directly to captcha.php, does it show any errors? Quote Link to comment Share on other sites More sharing options...
Xurion Posted August 7, 2008 Share Posted August 7, 2008 Do a phpinfo() just to check the GD is there. Quote Link to comment Share on other sites More sharing options...
DarkWater Posted August 7, 2008 Share Posted August 7, 2008 He'd get a Fatal error: Call to undefined function image_jpeg(). Quote Link to comment Share on other sites More sharing options...
Xurion Posted August 7, 2008 Share Posted August 7, 2008 Only if he navigates to the captcha.php file and errors are turned on. Quote Link to comment Share on other sites More sharing options...
lostprophetpunk Posted August 7, 2008 Author Share Posted August 7, 2008 The page loads fine just the image doesn't show. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.