PHP код за сигурност / против ботове /

Автор: AnHiMiLaToR

Първо искам да отбележа, че автора е неизвестен, не съм аз.
Реших да го споделя понеже ми е много полезен.
На практика можете да го видите тук: http://gre-rakovski.com/?p=contact .
Използва се за контакт форми, регистрация и др, които използват метод POST

създавате файл code.php:

<?php
session_start();
$simwoli = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$max_chars = 6;
$count = strlen($simwoli)-1;

for ($i=0; $i<$max_chars; $i++) {
$random = mt_rand(0, $count);
$rand .= $simwoli{$random};
}
$_SESSION['image_random_value'] = md5($rand);
$image = imagecreate(60, 22);
$bgColor = imagecolorallocate ($image, 255, 255, 255);
$textColor = imagecolorallocate ($image, 102, 102, 102);
imagestring ($image, 6, 4, 4, $rand, $textColor);
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>

следващото го пишете във формуляра, там където да се показва кода:

Код за сигурност: <img src="code.php"/>
Въведи кода: <input type="text" name="randimage_txt" maxlength="6"/>

и последно, във файла, който обработва заявката:

if( md5( $_POST['randimage_txt'] ) != $_SESSION['image_random_value'] ){
print'Объркахте кода за сигурност. Моля опитайте отново!';
}
else{
//код, който да се изпълни ако секретния код е вярно попълнен
print'Кода за сигурност е верен.';}

Вашият коментар