Hello,
I am trying to reload a captcha with a button and javascript. The way I have it set up right is like this:
the HTML img
<img id="imgCaptcha" src="/php/create_captcha.p
hp" />
the HTML button
<img id="captcha_img" src="/images/buttons/reloa
d.png" class="neutral-link" rel="Reload" title="Reload" onClick="reloadCaptcha();"
>
the javascript
function reloadCaptcha() {
if (refresh_count == '') {
refresh_count = 0;
}
document.images["imgCaptch
a"].src = '/php/create_captcha.php?c
=' + refresh_count;
refresh_count = refresh_count + 1;
}
the PHP
//Start the session so we can store what the security code actually is
session_start();
//Send a generated image to the browser
create_image();
exit();
function create_image()
{
$increment = $_GET['c'];
//Let's generate a totally random string using md5
$md5_hash = md5(rand(0,999)*$increment
);
//We don't need a 32 character long string so we trim it down to 5
$security_code = substr($md5_hash, 15, 5);
//Set the session to store the security code
$_SESSION["security_code"]
= $security_code;
//Set the image width and height
$width = 200;
$height = 27;
//Create the image resource
$image = ImageCreate($width, $height);
//We are making three colors, white, black and gray
$white = ImageColorAllocate($image,
255, 255, 255);
$black = ImageColorAllocate($image,
51, 79, 62);
$grey = ImageColorAllocate($image,
0, 204, 102);
//Make the background black
ImageFill($image, 0, 0, $black);
//Add randomly generated string in white to the image
ImageString($image, 5, 100, 6, $security_code, $white);
//Throw in some lines to make it a little bit harder for any bots to break
ImageRectangle($image,0,0,
$width-1,$
height-1,$
grey);
imageline($image, 0, $height/2, $width, $height/2, $grey);
imageline($image, $width/2, 0, $width/2, $height, $grey);
//Tell the browser what kind of file is come in
header("Content-Type: image/jpeg");
//Output the newly created image in jpeg format
ImageJpeg($image);
//Free up resources
ImageDestroy($image);
}
Start Free Trial