Статья:Защита от авторегистраций.

20 января 2006, пятница 15:47
Оригинальный адрес статьи:http://www.web-maste.ru/articles.php?c=4&s=2&a=12
Защита от Авторегистраций.
В нынешнее время люди чаще сами не заполняют регистрационные формы, предоставляя это дело роботам.
Это доставляло уйму хлопот владельцам сайтов.Но с все нарастающим использованием GD библиотеки РНР эта проблема была решена.

Что такое GD?Это особая бибилотека которая позволяет несколькими строчками кода создавать изображения в формате gif,png,jpeg.Так вот с по
мощью данной библиотеки мы и попробуем создать изображение со случайно подобранным кодом букв и цифр.Как мы это сделаем?Сначала м
ы напишем код этого изображения и сохраним этот файл с именем например reg_check.php.Затем вам необходимо будет создать в вашей регист
рационной форме поле для введения содержания изображения(вы его введете тут же рядом, как обычную картинку-<img src='reg_check.php'...) , и
в скрипте, обрабатывающем вашу форму, должна быть проверка переменной вот такой:$secret_code.Если эта переменная равна числовому значению,введенному пользователем, значит форму заполнил не робот и можно продолжать регистрацию.А что это за переменная вы сейчас и узнаете.Вот ниже представлен
код всего скрипта, создающего изображение со случайным набором цифр и букв и переменную $secret_code которую и надо проверять.Итак приступ
им к написанию:
Примечание:массив $liters, это массив используемых букв, вы можете сделать его любым, но лучше составить его из аглицких букв.
КОД:
<?php
error_reporting(0);
session_start();
header ("Content-type:image/jpeg");
$liters=array(0=>"a",1=>"z",2=>"m",3=>"f",4=>"h",5=>"s",6=>"r");
$image=imagecreatetruecolor(140,40);
$white=imagecolorallocate($image,255,255,255);
$green=imagecolorallocate($image,0,128,0);
$str=rand(6,9);//число от 6 до 9
$str1=$liters[rand(0,count($liters))];
$str2=rand(1,6);// число от 1 до 6
$str1=$liters[rand(0,count($liters))];
$str4=rand(1,34);//число от одного до 34
$check="$str$str1$str2$str3$str4";
session_register("secret_code");
$secret_code=$check;
imagestring($image,5,5,20,$check,$green);
//Выводим изображение со строкой проверки
imagejpeg($image);
imagedestroy($image);
?>
КОНЕЦ КОДА
Ну вот и все.

Теперь запускайте и пробуйте!

Маленькая подсказка:вы можете сделать эту штуку ещё красивей, если будете использовать свои шрифты.Например у меня есть шрифт
GothicRus.ttf и он лежит в той же папке что и этот скрипт.Шрифт готический.Тогда чтобы мои рандоменные числа и буквы вывелись этим красивым шрифтом, я просто меняю вот эту строчку

imagestring($image,4,5,20,$check,$green);

на вот такую

imagettftext($image,12,28,6,5,$green,"GothicRus.ttf",$check );

То есть, мы задаем картинку на которой писать,размер шрифта(12),угол поворота строки(28),координата х строки(6),координата у строки(5),цвет шрифта($green), путь к папке со шритом (GothicRus.ttf-в той же папке что и скрипт),и строчку для ввода($check-переменная содержащая эту строчку).

Все.

На этом знакомство с библиотекой GD обьявляю приоткрытым, пользуйтесь и фантазируйте.Будут вопросы, пишите администации.

Удачи вам и художественных успехов!
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают