Анти-спам при регистрация от сайта

koko92_national

Registered
Как мога да сложа и каква защита да не ми се регистрират ботове и спамери като имам формата за регистриране в сайта?
 
За целта са ти необходими 3 неща :

1. Скрипт който да генерира защитния код и да го визуализира :
img.php
Код:
<?php
$dyl="4"; //дължина на кода
function randStr($length) {
$key = "";
$pattern = "1234567890";
for($i=0;$i<$length;$i++) {
$key .= $pattern{rand(0,9)};
}
return $key;
}
header("Content-type: image/png");
$bg = "bg.png"; //картинката за BG
$im = @ImageCreateFrompng($bg); 
$text = randStr($dyl); //взимаме произволния текст
setcookie("imgcodepage",$text,time()+3600,"/"); //правим бисквитки с този текст
$text_color = imagecolorallocate($im, 0, 0, 0);//цвета на текста
imagestring($im, 10, 10, 10,$text, $text_color); //генерираме картинката
imagepng($im);
imagedestroy($im);
?>

$dyl - тук настройваш колко цифри/букви да показва.
$pattern - тук задаваш цифрите и буквите от тях ще генерира кода
$bg - тук задаваш картинката като фон на който ще показва кода
imagestring($im, 10, 10, 10,$text, $text_color); - Тук 10,10,10 - задаваш къде да показва кода на фона (нещо като координати X,Y,Z)

Генератора е направен така ,че при отварянето на страницата съдържаща тага за картинка поставя кода в бизквитките на браузъра ти.

2. Код за проверка дали е въведен защитния код правилно
Код:
$kod = htmlspecialchars(addslashes($_POST[kod]));//взимаме текста
if($kod!=$_COOKIE[imgcodepage]){
die ("<b>Не сте въвели правилно защитния код!</b><META HTTP-EQUIV='Refresh' CONTENT='1; URL=http://empire.pepesh.com'>");
}
Ако въведения код съвпада с този поставен в бизквитките от генератора ще те пусне в следващата страница в противен случай ти изкарва съобщението от die

3. Добавяш тези редове в формата за регистрация или вход

<img src="img.php" align="left"> <input name="kod" type="text" size="5">


където тага за img е генератора а полето input е мястото където трябва да се въведе защитния код.

Мисля че това ти е достатъчно :)
 
Ето този:

http://web-tourist.net/login/login/view.php?st=2439

За сега е най-ефикасния и е доста лесен за инсталиране.
 

Back
Горе