|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » защита от спасма |
|
|
защита от спасма
|
Новый участник Сообщения: 12 |
Профиль | Отправить PM | Цитировать Народ!создал форму обратной связи,но вот нужна защита от спама типа картинки с номерами.помогите реализовать....
|
|
Отправлено: 01:47, 01-07-2008 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать imho в форме обратной связи оно и не нужно
|
Отправлено: 09:45, 01-07-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать почему?там заполняется форма имя мэйл вопрос и отправляется на мэйл человека!так спама много будет
|
Отправлено: 10:29, 01-07-2008 | #3 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать эмм.. НУ rand вам в руки, пару шрифтов и GD либа для работы с изображениями... и будет вам форма защиты от спама...
|
------- Отправлено: 14:18, 01-07-2008 | #4 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать BASSON_XVI, Busla, было бы все так просто сделал бы.....поэтому и прошу помощи,отправку сообщений на мэйл еще осилил с горем пополам,а это наврядли.Может кто помочь?
|
|
Отправлено: 14:39, 01-07-2008 | #5 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать arrancar, А ты думаешь проще когда за тебя кто то напишет код? Прочитай что такое rand что такое массивы я думаю ты знаешь.... Прочитай про библиотеку GD и генерацию изображений.
Теперь говорю как бы я осуществил защиту от спама: Делаю 2 массива. В один вбиваю цифры от 0 до 9, во второй вбиваю англ. алфавит. Дальше в цикле я генерю последовательность символов с помощью цикла и функции rand. Примерно так:
Ну а дальше с помощью GD нужно просто сделать картинку с буквами из $str_spam и создать поле ввода для кода и одно скрытое поле для передачи этого кода. Когда юзер все заполнить и отправит сделать проверку если сходиться то что вел юзер с тем тчо было в скрытом поле то отправляем почту если нет то пишет что нет. |
------- Отправлено: 15:06, 01-07-2008 | #6 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать BASSON_XVI, дельно спасибо
|
Отправлено: 15:31, 01-07-2008 | #7 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать arrancar, }{ы ага если какие проблемы с Гд будут пиши...
Хы вместо спасибо мне гораздо приятней получить + "Полезное сообщение". Но и спасибке я тоже рад ) |
------- Отправлено: 16:01, 01-07-2008 | #8 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Код:
<?PHP $config_max_digits="4"; if ($QUERY_STRING=="") { // session id $sid=session_id(); if(!$sid){ session_start(); $sid=session_id(); } $gen_code = ""; for($i=0; $i<$config_max_digits;$i++) $gen_code = $gen_code.rand(0,9); $HTTP_SESSION_VARS["noautomationcode"] = $gen_code; echo (" <img src='showcode.php?sid=$sid'> <form action='?begin' method='post'> <input type='hidden' name='sid' value='$sid'> <input type='text' name='code'> <input type='Submit' name='Submit'> </form>"); } if ($QUERY_STRING == "begin") { session_start(); $gen_code = $HTTP_SESSION_VARS["noautomationcode"]; if ($code == $gen_code) { echo "Защищеные данные"; }else{ echo "<b>Код не верный</b><br />Повторите попытку<br />"; echo ("<img src='showcode.php?sid=$sid'><form action='?begin' method='post'><input type='hidden' name='sid' value='$sid'><input type='text' name='code'><input type='Submit' name='Submit'></form>"); } } ?> showcode.php Код: <?PHP $img_x="40"; $img_y="20"; $font_size=5; $sid=trim($HTTP_GET_VARS["sid"]); session_id($sid); session_start(); $gen_code = $HTTP_SESSION_VARS["noautomationcode"]; $img = imagecreate ($img_x,$img_y); $background_color = imagecolorallocate ($img, 255, 255, 255); $f_x = imagefontwidth ( $font_size ); $f_y = imagefontheight ( $font_size ); $x = ($img_x - strlen($gen_code) * $f_x )/2; $y = ($img_y - $f_y) / 2; $color = imagecolorallocate($img,000,000,000); $dc = ImageColorAllocate($img, rand(0,255), rand(0,255), rand(0,255)); ImageRectangle($img, rand(0, $img_x/2 ), rand(0, $img_y/2 ), rand($img_x / 2, $img_x) ,rand($img_y / 2, $img_y), $dc); $dc = ImageColorAllocate($img, rand(0,255), rand(0,255), rand(0,255)); ImageRectangle($img, rand(0, $img_x/2 ), rand(0, $img_y/2 ), rand($img_x / 2, $img_x) ,rand($img_y / 2, $img_y), $dc); imagestring ( $img, $font_size, $x, $y, $gen_code, $color); for($i = $img_x * $img_y / 10; $i >= 0;$i--) { ImageSetPixel($img, rand(0,$img_x), rand(0,$img_y), ImageColorAllocate($img, rand(0,255), rand(0,255), rand(0,255))); } header("Content-Type:image/gif"); imagegif($img); ?> выдает ошибку такую вот: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/tu2.ru/d/de/despirado/htdocs/www/index.php:11) in /home/tu2.ru/d/de/despirado/htdocs/www/index.php on line 42 это в первом скрипте,а еще не отображает картинку |
Отправлено: 19:23, 01-07-2008 | #9 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать ну дык а ты что хош вынеси на самый верх страницы session_start(); и все будет окей.
|
------- Отправлено: 19:43, 01-07-2008 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Mandriva/Mandrake - защита Pureftpd | admin666 | Общий по Linux | 3 | 14-09-2009 19:58 | |
Защита ПК | jmt4 | Защита компьютерных систем | 6 | 28-06-2007 22:32 | |
Защита BIOSа | Black Tiger | Защита компьютерных систем | 6 | 25-04-2005 10:47 | |
Защита ПК | FolD | Защита компьютерных систем | 5 | 25-01-2005 06:30 | |
Защита | esaul | Microsoft Windows 95/98/Me (архив) | 3 | 31-07-2002 17:00 |
|