Captcha Class

dakata__92

Super Moderator
Има ли варянт да се направи такъв клас без Сесии? Интересува ме защото желая да го добавя в библиотеката но да работи без сесиите на фрейма. Правя го защото желая самата добавка да работи и самостоятелно ако се наложи. :) Ако го обединя с кодовете за сесиите на фрейма ще се получи адски лошо объркване и логика. Дори да е в някакъв темп файл някъде кода или незнам и аз но да е нещо сигурно. Имате ли идеи как ще стане? :)
 
На този метод как мога да направя ретър на снимката за сравнение и да не се изобразява във браузъра? Смисъл давайте идеи, че нещо не ми се получава логиката...
PHP:
public function create(){
		header('Content-type: image/png');
		
		$font_file = 'captcha.ttf';
		$x = 250;
		$y = 35;
		$z = 4;
	
		$image = imagecreate($x, $y);
		$back = imagecolorallocate($image, 255, 255, 255);
		imagecolortransparent($image, $back);
		$border = imagecolorallocate($image, 1000, 0, 0);

		//imagerectangle($image,0,0,99,29,$border);
		$n = round($x / $z);
		$code = "";
		for ($i = 0; $i < $z; $i++){
			$r = rand(0, 9);
			imageline($image, 0, rand(0, $y), $x, rand(0, $y), $border);
			imageline($image, rand(0, $x), 0, rand(0, $x), $y, $border);
			imagettftext($image, rand(12, 22), rand(-30, 30), 5 + $i * $n, rand(20, 30), $border, $font_file, $r);
			$code .= $r;
		}

		imagepng($image);
		imagedestroy($image);
	}
 
Няма как да се получи капчата без метод за запазване на стойността, било то под формата на сесии, бисквити, ягоди, малини... Логиката следва да е, че след подаване на заявката самата капча се променя и сравнената стойност с тази въведена от потребителя никога не би била равна една на друга. Можеш да опиташ друг метод за залавяне на нежелани кралери, но специално за капча, не мисля, че ще има по-проста алтернатива. Опитай да попрочетеш за honeypot.

Това на горе бяха празни приказки, добавката може да работи и сама по себе си с използването на сесии. Просто тази сесия не я обвързвай с друга информация ( което по принцип се прави ).
 

Back
Горе