captcha.php
|
<?php session_start(); //стартираме сесията $captcha = rand(10000,99999); //генерираме случайно петцифрено число с фукцията rand. Тя приема два параметъра. Първи е началното число, втория крайното число. Така ще генерира случайно число, което се намира между тези двете. $code = md5($captcha); //хешираме данните чрез md5 функцията $_SESSION['captcha'] = $code; //вкарваме всичко в сесия $_SESSION['captcha'] $width = 90; $height = 35; //създавам две променливи width и height за ширината и височината на изображнеието $image = imagecreate($width,$height); //Използваме функцията imagecreate() за да създадем изображението. $background = imagecolorallocate($image,120,55,145); $foreground = imagecolorallocate($image,245,245,245); //задаване фона на снимката (в случая $background) и цвета на текста ($foreground). Сложил съм примерни имена на променливите. imagestring($image,20,20,12, $captcha, $foreground); header('Content-type: image/jpeg'); //задаваме content-type да е image/jpeg или според типа на изображението. Много е важно да бъде зададен. imagejpeg($image); imagedestroy($image); ?> |
|
|
<?php error_reporting(0); //изключваме error_reporting session_start(); //стартираме сесията if($_POST['form_submit']==1){ //правим проверка дали е събмитната формата. $code_posted = $_POST['captcha']; if($_SESSION['captcha'] == md5($code_posted)) { //сравняваме постнатият код с хеша на кода от изображението, запазен в сесията $_SESSION['captcha'] echo 'Правилно!'; //ако всичко е наред, изкарваме съобщение. } else { echo 'Грешка!'; //ако има грешка, изкарваме съобщение. } } else { echo 'Моля попълнете формата!'; //ако не е събмитната формата, изкарваме съобщение. } ?> <html> <br /><br /><img src="captcha.php" /><br /><br /> <form action="" method="post"> <input type="text" name="captcha" /> <input type="submit" name="submit" value="давай"/> <input type="hidden" name="form_submit" value="1"/> </form> </html> <!-- Това ни е формата. Методът е post, имаме едно текстово поле за попълване на кода и едно скрито поле, чрез което ще правим проверка дали е попълнена формата, за да започне обработка и сравнение на двата кода (този от изображението и попълненият от потребителя. Имаме и един submit бутон. Изображението вкарваме чрез img тага на html. За тези, които не са се занимавали с това досега - не се опитвайте да инклудвате captcha.php във файла, защото ще му придаде Content-type: image/jpeg. --> |
|