Skip to content

Instantly share code, notes, and snippets.

@serhiinkh
Created January 13, 2014 10:31
Show Gist options
  • Save serhiinkh/8397910 to your computer and use it in GitHub Desktop.
Save serhiinkh/8397910 to your computer and use it in GitHub Desktop.
Captcha
<?php
class Captcha
{
private static function generate() {
$fontFile = './captcha.ttf';
$fontSize = 18;
$charsAmount = 5;
$chars = '23456789BCDFGHJKMNPQRSTVWXYZ';
$stringOffsetX = 5;
$stringOffsetY = 25;
$captchaString = '';
for($i=0; $i<$charsAmount; $i++) {
$captchaString .= $chars[mt_rand(0,strlen($chars)-1)];
}
$_SESSION['captcha'] = strtolower($captchaString);
ob_start();
$image = imagecreatetruecolor(80, 25);
$color = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $color);
imagesavealpha($image, true);
imagefttext($image, $fontSize, 0, 0, 20, 0x000000, $fontFile, $captchaString);
imagepng($image);
imagedestroy($image);
$image_data = base64_encode(ob_get_contents());
ob_end_clean();
return $image_data;
}
public static function create() {
echo '<img src="data:image/png;base64,' . self::generate() . '">';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment