![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Гость_Сергей |
|
|||
|
Unregistered |
Интересно как пишут такие штуки как защиту от автоматических регистраций???, то есть я имею ввиду как пишут такие фичи на PHP, которые предлагают ввести некоторые символы случайно сгенерированные на картинке, например, такие штуки используют в регистрационных формах.
Я так это понимаю: 1) Нужен файл php который будет формировать картинку. 2) И Сам файл где находится форма, где и отображается эта картинка со случайными цислами. Ну картинку я делаю в файле например png.php. Листинг: ==================================================== <? // передаем заголовок Header("Content-Type: image/png"); // создаем дескриптор изображения и регистрируем цвета $im = ImageCreate(150, 30); $black = ImageColorAllocate($im, 255, 255, 230); $color = ImageColorAllocate($im, 0, 0, 0); // выполняем "заливку" рисунка ImageFill($im, 0, 0, $black); // случайное число: $text = mt_rand (1000000000, 9999999999); // помещаем на изображение текст ImageString($im, 25, 30, 10, $text, $color); imageLine ($im, 250, 25, 0, 23, $color); imageLine ($im, 1, 0, 250, 50, $color); imageLine ($im, 250, 15, 0, 12, $color); ImagePng($im); ImageDestroy($im); ?> ========================================================= Картинка есть... дальше в файле где находится форма пусть например forma.php я включаю этот рисунок такой строкой: <IMG SRC="png.php" WIDTH="150" HEIGHT="30" BORDER=1 bordercolor=black> Ну все, казалось бы у меня все получилось, только вот незадача как же мне, то есть файлу формы (forma.php) определить правильно ли ввел человек эти самые случайные цисла на картинке??? т.е. задача состоит в том, чтобы каким-то образом вытянуть из файла где формируется эта картинка (png.php) это самое случайное цисло, то бишь переменную: $text а затем в файле сравнить эту переменную $text с той которую введет юзер в форму. И как это реализовать??? Благодарю всех кто поможет найти решение или предложит свой вид организации данной функции - функции предотвращающей авторегистрации. |
|||
|
||||
| Chuck |
|
|||
![]() Сушня ![]() ![]() Профиль Группа: Эксперт Сообщений: 442 Регистрация: 12.12.2003 Где: Узбекистан, Ташке нт Репутация: нет Всего: 9 |
А просто!
Создаешь сессию В png.php пишешь типа $_SESSION['numbers'] = твои цифорки; А в form.php читаешь сессию и сверяешь! Можно так, помоему! Можно куки, хотя одно и тоже, что и сессия! |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 10 Всего: 73 |
Однако... -------------------- Теперь при чем :P |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Не путай куки с сессиями. С куками такой вариант поддается взлому: я могу написать бота который тебе пару тысяч юзеров зарегит, просто будет с кук считывать инфу и регить, регить и регить ... \:D/ И та же ситуация с тем если сессии с куками совмещены (что чаще всего и делается). Остается вариант писать в файл/бд инфу - дата в формате юникс штамп|циферки подтвеждения регистрации, и будет Вам счастье. PS Главное не забывай удалять просроченные записи ( минут 10-20 на заполнение формы думаю хватит). -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
IZ@TOP
Достаточно писать в сессии, тогда в куки будет передан только id сессии, а инфа будет на винте на сервере, тогда не нужно будет думать об удалении файлов и прочем. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |