185 / 185 / 53
Регистрация: 10.04.2009
Сообщений: 491
|
|
1 | |
Как создать антиспамную защиту для формы?15.03.2010, 12:46. Показов 1737. Ответов 18
Метки нет (Все метки)
нужна антиспамная защита для формы регистрации людей, ну как во всех сайтах
что б генерировался случайный код(набор символов) переводить его в рисунок, потом немного исказить случайным образом заранее благодарен
0
|
15.03.2010, 12:46 | |
Ответы с готовыми решениями:
18
Как создать защиту от дурака в PHP Как создать для формы пользовательский интерфейс Как создать обработчик события для формы? Как создать красивую кнопку для формы? |
43 / 41 / 4
Регистрация: 10.03.2010
Сообщений: 196
|
|
15.03.2010, 13:21 | 2 |
Может немного горбатый, но вполне рабочий скрипт капчи собственного производства. Как работает можно глянуть здесь:
http://irina-makeup.org.ua/index.php?go=guestbook
0
|
43 / 41 / 4
Регистрация: 10.03.2010
Сообщений: 196
|
|
15.03.2010, 13:22 | 3 |
Если возникнут вопросы - отвечу на всё))
0
|
185 / 185 / 53
Регистрация: 10.04.2009
Сообщений: 491
|
||||||
15.03.2010, 17:02 [ТС] | 4 | |||||
вижу, очень даже в яблочко, только я не очень понимаю как внедрить его в мою форму
вот моя форма
как оно вообще делается?
0
|
43 / 41 / 4
Регистрация: 10.03.2010
Сообщений: 196
|
||||||
15.03.2010, 18:08 | 5 | |||||
Используя ваш код, то должно получиться как-то вот так:
0
|
185 / 185 / 53
Регистрация: 10.04.2009
Сообщений: 491
|
||||||
15.03.2010, 18:55 [ТС] | 6 | |||||
а как мне обрабатывать результат
0
|
15.03.2010, 21:17 | 7 |
Скрипт капчи должен помещать в переменную сессии тот, текст, который выводиться на картинке. На странице проверки данных из формы сравнивай переданный POST и значение из капчи, если идентичны, то бацай дальше, если нет, то выводи ошибку. Но в капче уже включена походу эта проверка, единственное что изменил бы, так это == на ===
0
|
185 / 185 / 53
Регистрация: 10.04.2009
Сообщений: 491
|
|
15.03.2010, 21:43 [ТС] | 8 |
0
|
43 / 41 / 4
Регистрация: 10.03.2010
Сообщений: 196
|
|||||||||||
15.03.2010, 23:24 | 10 | ||||||||||
Немного подкорректировал...
Итак, нохайнмаль! Наша форма:
Немного объясню как работает капча, так как скорее всего этот вопрос у многих возникнет)) Капча вставляется в код страницы путем вставки ссылки на сам скрипт капчи в тег img. Функция ответственная за вывод картинки (captcha_put()) кроме вывода на страницу картинки с набором символов пишет в переменную сессии значение этого набора символов, которое изображено на картинке. Замечу что в ссылке на капчу присутствует параметр rand со случайным числом. Это необходимо для того чтобы браузер не выдавал одну и ту же им закешированную картинку. Далее пользователь вписывает в поле <input type='text' name='mycpt' /> эти символы, которые в последующем передадутся на сервер скрипту receiver.php, в котором на 4-ой строчке функцией captcha_verify() происходит проверка на правильность ввода капчи.
0
|
185 / 185 / 53
Регистрация: 10.04.2009
Сообщений: 491
|
|
16.03.2010, 01:41 [ТС] | 11 |
возникает проблема с сессиями
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Q:\home\localhost\www\work\receiver.php:6) in Q:\home\localhost\www\work\captcha.php on line 2 вот ошибка которую выводит браузер когда открывается после нажатия сабмит переход на receiver.php что тут можно сделать, нужно убрать сессию с файла captcha.php ? или как ее решить?
0
|
43 / 41 / 4
Регистрация: 10.03.2010
Сообщений: 196
|
|
16.03.2010, 22:28 | 13 |
Ничего из captcha.php удалять не нужно! Тем более что-то переделівать! Все там прекрасно работает! Покажи лучше что у тебя идет до 6-ой строки включительно в reciver.php. Сейчас разберемся!
0
|
185 / 185 / 53
Регистрация: 10.04.2009
Сообщений: 491
|
||||||
17.03.2010, 01:17 [ТС] | 14 | |||||
0
|
43 / 41 / 4
Регистрация: 10.03.2010
Сообщений: 196
|
|
17.03.2010, 01:41 | 15 |
0
|
185 / 185 / 53
Регистрация: 10.04.2009
Сообщений: 491
|
||||||
17.03.2010, 02:26 [ТС] | 16 | |||||
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Q:\home\localhost\www\work\receiver.php:2) in Q:\home\localhost\www\work\captcha.php on line 2 надо ж как-то открыть сессию или нет, я ж ее создаю, надо сохранить и открыть... я так понимаю что оно опять пытается создать уже созданное
0
|
43 / 41 / 4
Регистрация: 10.03.2010
Сообщений: 196
|
|
17.03.2010, 09:47 | 17 |
Подозреваю что у тебя первая строка стоит пустая, а со второй начинается код. Это тоже означает, что в браузер пошли данные, после чего про отсылание заголовков можешь забыть. Посмотри внимательно, есть ли перед <?php пробелы или переводы строки. Если есть, то удаляй.
0
|
185 / 185 / 53
Регистрация: 10.04.2009
Сообщений: 491
|
|
17.03.2010, 10:31 [ТС] | 18 |
все теперь работает
это получается, что нужно считывать сессию перед формированием нтмл кода, а он начинал формироваться еще с того пустого места перед рнр кодом?
0
|
43 / 41 / 4
Регистрация: 10.03.2010
Сообщений: 196
|
|
17.03.2010, 10:39 | 19 |
Там не пустое место, там у тебя стояли как минимум символ|ы перевода каретки. Перед отправкой заголовков (установкой кукисов, Content-type и т. д.) никаких символов, тегов и пр., связанных с выводом информации в браузер стоять не должно!
1
|
17.03.2010, 10:39 | |
17.03.2010, 10:39 | |
Помогаю со студенческими работами здесь
19
Как создать формы публикаций для обычных пользователей Как снять защиту для переустановки на ноуте Тошиба Как создать свою иконку для своего элемента управления формы? Как написать защиту от некорректного ввода для моей проги? Как создать правило для формы вбиваемое количество может быть не больше количества в наличии? Как сделать по возможности максимально универсальную защиту от дурака для ввода целых положительных чисел? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |