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'; } ?> Link to comment https://forums.phpfreaks.com/topic/118654-captcha/ 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? Link to comment https://forums.phpfreaks.com/topic/118654-captcha/#findComment-610877 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. Link to comment https://forums.phpfreaks.com/topic/118654-captcha/#findComment-610880 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(). Link to comment https://forums.phpfreaks.com/topic/118654-captcha/#findComment-610882 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. Link to comment https://forums.phpfreaks.com/topic/118654-captcha/#findComment-610885 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. Link to comment https://forums.phpfreaks.com/topic/118654-captcha/#findComment-610893 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.