title
Description
Body
серьезную защиту таким образом не сделаешь. отображай проверочное число как текст и еще нужно его передать скрипту, чтобы знать с чем сверять то, что ввел пользователь. единственный нормальный способ, это передавать число через сессию, иначе обойти такую "защиту" будет ну совсем уж просто.
все эти проверочные строятся на простом алгоритме - передается 2 значения, первое - то что ввел пользователь, второе - то что есть на самом деле. и далее скрипт сверяет эти значения.
|
|
ну и каким же образом можно обойти "такую защиту", м ?
упрощенно так:
добавь hidden поле в форму и передавай в нем тоже число.
далее скриптом который получает данные из формы сверь число которое ввел пользователь и то значение, которое бло в hidden поле формы.
ну и соответственно если не совпало, то число введено не верно.
Неактивен
так.
данные принимаю\обрабатываю так:
Код:
if((!isset($_POST['key']) || $_POST['key']!=$key)) shit_happened('<center><span style="color: red">Heвepнo ввeдён зaщитный кoд</span></center>');
а там где вывожу написал так:
Код:
$key = rand(1000,9999);
echo "<span style=\"color: red\">*</span> введите код
<span style=\"color: #0112b8\">$key</span>:<br />
<input type=\"hidden\" name=\"key\" value=\"$key\"/>
<input type=\"text\" name=\"key\" maxlength=\"10\" size=\"5\"/><br /><br />";
итог: у меня неработает)) ну эт я неправильно зделал чё та))
Добавлено спустя 2 минуты 14 секунд:
всмысле работает.. если незаполнить это поле), а вот если ещё и правильно это поле я заполнил, то всё равно пишет "неверно введён защитный код"
итог: ну эт я чёта неправильно зделал)
Неактивен
замени
|
|
Неактивен
хм)) Димка Котеров пишет, что про использование функции rand() лучше навсегда забыть!)
лучше, говорит, использавать mt_rand()
|
|
Добавлено спустя 4 минуты 19 секунд:
"Мы намеренно не рассматриваем функции rand() и srand()? потому что качество случайных чисел, которые они выдают, никуда не годится. Настоятельно рекомендуем вместо них использовать описанные ниже функции, а про rand() вообще забыть." - Димка Котеров
Неактивен