Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Система защиты от автоматических регистраций на PHP

 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Dec 10, 2006 2:17 pm    Заголовок сообщения: Система защиты от автоматических регистраций на PHP
Ответить с цитатой

<p>Я думаю у вас сразу возник вопрос: что это такое?
Ответ: когда вы регистрируетесь где-нибудь вас просят
ввести цифры с картинки. Это и есть система защиты от
автоматических регистраций. Зачем она нужна? Она нужна
для того чтобы на сайте не производилась регистрация
программой или скриптом.
<p>Как все это будет работать? Все очень просто! Выводим
форму с нужными нам полями и сам рисунок. Создание
рисунка немного соложнее. Надо создать изображение,
сгенерировать номер, занести его в куку и вывести на
рисунок. При обработке формы мы будем проверять
совпадение номера из куки и введенного в форме.
<p>Файл <b>index.php</b>:<br><code><?php
<br>//
Проверяем отправлена ли форма <br>$action =
empty($_POST["number"]) ?
false : true;
<br>// Если нет, то выводим
ее <br>if(!$action){
<br>echo "
<FORM action='\"index.php\"' method=post>"; <br>echo "<INPUT type='\"text\"'
name='\"number\"'>"; <br>echo
"<IMG height='\"15\"'
alt='\"Введите' src="" width='\"50\"' border='\"0\"'
цифры\? эти><br>"; <br>echo
"<INPUT type='\"submit\"'
value='\"Run\"'>"; <br>echo
"</FORM>"; <br>} else { // если да, то проверяем код <br>&nbsp;
&nbsp; &nbsp; &nbsp; // если введены не цифры или цифры
и буквы, то выдаем сообщение <br>&nbsp; &nbsp; &nbsp;
&nbsp; if(!is_numeric($_POST["number"])){
<br>&nbsp; &nbsp; &nbsp;
&nbsp; die("Неправильный формат
кода!"); <br>&nbsp;
&nbsp; &nbsp; &nbsp; } <br>
// Проверка на правильность
кода <br>if($_COOKIE['reg_num']!==$_POST["number"]){
<br>&nbsp; &nbsp; &nbsp;
&nbsp; // Если не правильный
<br>&nbsp; &nbsp; &nbsp;
&nbsp; echo "Код не
совпадает!";
<br>} else { <br>&nbsp;
&nbsp; &nbsp; &nbsp;
// Если правильный <br>&nbsp;
&nbsp; &nbsp; &nbsp;
echo "Код
правильный!";
<br>} <br>} <br>?&gt; </code>
<p>Файл <b>genimage.php</b>:<br><code><?php
<br>//
Сгенерируем номер <br>$num
= rand('111111','999999');
<br>// Запишем номер в куку
<br>setcookie('reg_num',
$num); <br>//
Создадим рисунок размером 50x15 <br>$img =
imagecreate('50',
'15'); <br>//
Зададим задний цвет (серый) по RGB <br>$back =
imagecolorallocate($img,
218, 218
,218);
<br>// Зададим черный цвет
<br>$black = imagecolorallocate($img,
0,
0,
0); <br>//
Рисуем бордюр <br>imageline($img,
0,
0,
49, 0, $black);
<br>imageline($img,
0,
0,
0,
14 , $black);
<br>imageline($img,
0,
14, 49,
14 , $black);
<br>imageline($img,
49, 0, 49,
14 , $black);
<br>// Рисуем цифры
<br>imagestring($img,3,5,0,$num,$black);
<br>// Выводим рисунок
<br>imagepng($img);
<br>?&gt;
</code>
<p>Вот и все! Запускаем файл
index.php, вводим цифры. Если есть необходимость
добавить поля переправьте форму.</p>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
kofik




Зарегистрирован: 26.12.2006
Сообщения: 1

СообщениеДобавлено: Вт Dec 26, 2006 4:16 am    Заголовок сообщения:
Ответить с цитатой

Я воспользовался ранее приведенным кодом php для создания системы защиты от автоматических регистраций, но при запуске index.php появляется только окно для ввода номера который должен отображаться в виде картинки и кнопка для проверки результата, но картинка не отображается, только ее рамка, но это было приверсии php 5.1.4 и в этой версии небыло библиотеки gd. сейчас я использую php v.5.2.0 и при запуске index.php появляется сообщение: Указанное приложение CGI не возвратило полный набор заголовков HTTP и всё, так же я редактировал php.ini в windows, я указал в extension путь к php_gd2.dll и раскаментировал extension=php_gd2.dll. подскажите почему это не работает. зарание спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Anderson

Завсегдатай


Зарегистрирован: 08.07.2006
Сообщения: 642
Откуда: localhost

СообщениеДобавлено: Ср Dec 27, 2006 1:17 pm    Заголовок сообщения:
Ответить с цитатой

Во-первых: а сама бмблиотека в C:\Windows\System лежит?
Во-вторых: проверьте с phpinfo(), распознана ли GD Library Wink
_________________
ArchLinux + Enlightenment 17 (E17)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение anderson.dunai@gmail.com Моб. телефон ICQ Number
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис