Механизм капчи
1.
TRAIL (09.03.2012 / 13:20)
Есть простенький код капчи, вот
<?php
header("Content-type: image/png");
for($i=1; $i<5; $i++) $rand[$i] = mt_rand(0, 9);
$text = $rand[1].$rand[2].$rand[3].$rand[4];
$angle = mt_rand(0, 10);
$text_size = mt_rand(13, 17);
$font = 'font.ttf';
$img = imagecreate(55, 30);
$black = imagecolorallocate($img, 0, 0, 0);
$box = imagettfbbox($text_size, 0, $font, $text);
$x = $box[0] + (imagesx($img) / 2) - ($box[4] / 2);
$y = $box[1] + (imagesy($img) / 2) - ($box[5] / 2) - round($text_size / 2);
imagefilter($img, IMG_FILTER_EMBOSS);
imagettftext($img, $text_size, $angle, $x, $y+7, $black, $font, $text);
imagepng($img);
imagedestroy($img);
?>
код работает на 5+, но, не знаю как придумать системку проверку капчи, например в сессию записывался код на капче. То есть, есть файл reg.php, где должна находиться проверка капчи, а captcha.php - сам код капчи, вывожу изображение так <img src="captcha.php">,
include "captcha.php"; не катит.
Так как же проверять число введенное пользователем, и число с капчи, когда переменная находится в другом файле.
Добавлено через 04:21 сек.
То есть, переменная, с проверочным числом находится в captcha.php, а проверка должна в reg.php. Получается, нужно инклудить captcha.php в reg.php, чтобы переменная появилась, но, если так действовать, хеадер
header("Content-Type: image/png");
портит reg.php .
Ого велосипед.
2.
Александр (09.03.2012 / 14:04)
в captcha.php $_SESSION['captacha_key'] = '1234';
когда форма reg.php отправлена
if($_SESSION['captacha_key'] == $_POST['captacha_key'])
Добавлено через 03:29 сек.
p.s каптча слабоватая
3.
TRAIL (09.03.2012 / 14:12)
2.
Муз-ТВ, это ясно. Но, чтобы сверять сессию с пост, ее надо запустить. А сам код капчи находится в файле, на который пользователь не должен 3аходить. А в файле,в который должен заходить, нужно выводить капчу, так еще и в сессию записываться.
4.
Александр (09.03.2012 / 14:14)
с начало грузится reg.php, в нём код <img src="captcha.php">, значит выполнится captcha.php в котором создаться код, в чём проблема?
5.
TRAIL (09.03.2012 / 14:35)
Хм, тупонул. Спасибо
6.
ramzes (09.03.2012 / 14:51)
Если в нем не буде сессион старт то ни чего не получится
URL:
https://visavi.net/topics/30324