Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Защита от автоматической регистрации "сложение двух цифр"

Сообщения:  [1-10]   [11-11] 

 
 автор: Степан   (07.10.2009 в 11:38)   письмо автору
 
   для: neadekvat   (06.10.2009 в 17:20)
 

Вы правы - каптча гораздо эффективнее и ставится довольно просто. Благодарю за совет!

  Ответить  
 
 автор: neadekvat   (06.10.2009 в 17:20)   письмо автору
 
   для: Trianon   (06.10.2009 в 17:15)
 

Я не знаю ответ.
Хотя тоже хотел предложить сделать так:

<input type="hidden" value="<?=$z?>" name="sum">

Безопасность на том же уровне будет

Я лично использую каптчу, и мозг не напрягает (если картинка разборчива) и безопасность выше ("продвинутые" боты и картинку распознают, конечно, но уже что-то)

  Ответить  
 
 автор: Trianon   (06.10.2009 в 17:15)   письмо автору
 
   для: neadekvat   (06.10.2009 в 17:10)
 

Одно непонятно. Зачем все эти танцы с бубном? Боту два числа не сложить?

  Ответить  
 
 автор: neadekvat   (06.10.2009 в 17:10)   письмо автору
 
   для: Степан   (06.10.2009 в 16:48)
 

Вверху страницы получить две переменные
В сессию записать их сумму
А потом на странице вывести эти переменные никак?

  Ответить  
 
 автор: Trianon   (06.10.2009 в 17:05)   письмо автору
 
   для: mihdan   (06.10.2009 в 17:04)
 

а закрывать их как?

  Ответить  
 
 автор: mihdan   (06.10.2009 в 17:04)   письмо автору
 
   для: Степан   (06.10.2009 в 15:14)
 

Не в тему, но

<?php
$errors 
= array();

if (
$check != $z$error[] = 'Текст ошибки 1';
if (
$check != $b$error[] = 'Текст ошибки 2';
.......

if (
sizeof($errors) > 0) {
    echo 
implode('<li>'$errors);
}
?>

  Ответить  
 
 автор: Степан   (06.10.2009 в 16:48)   письмо автору
 
   для: neadekvat   (06.10.2009 в 16:23)
 

Так ведь $a и $b нужно тоже получить $POST, если они стоят после $_SESSION['sum'], или они, если стоят выше, после нажатия на кнопку получают новое значение...

  Ответить  
 
 автор: neadekvat   (06.10.2009 в 16:23)   письмо автору
 
   для: Степан   (06.10.2009 в 16:14)
 

session_start();
$_SESSION['sum'] = $a + $b; // вот это на странице, где есть форма, надо вставить наверх, до вывода какого-либо символа в браузер. Т.е. рандомные числа и сумма уже известны. Потом идет разметка, выводятся числа (кроме суммы)


В обработчике формы добавляем тоже:

session_start();
if ($check != $_SESSION['sum']) echo 'Ошибка!';

  Ответить  
 
 автор: Степан   (06.10.2009 в 16:14)   письмо автору
 
   для: neadekvat   (06.10.2009 в 15:30)
 

заменил на if ($check != $_POST['z']), но $_POST['z'] после отправки формы не принимает значения

  Ответить  
 
 автор: neadekvat   (06.10.2009 в 15:30)   письмо автору
 
   для: Степан   (06.10.2009 в 15:14)
 

$z - это $_POST['z'] после отправки формы
У вас в коде я вижу просто $z

  Ответить  

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования