Вы не зашли.
П0дскажите каг замутить текстовый проверочный код?
#2.
Gemorr
Гость
2008.06.09 04:04
серьезную защиту таким образом не сделаешь. отображай проверочное число как текст и еще нужно его передать скрипту, чтобы знать с чем сверять то, что ввел пользователь. единственный нормальный способ, это передавать число через сессию, иначе обойти такую "защиту" будет ну совсем уж просто.
все эти проверочные строятся на простом алгоритме - передается 2 значения, первое - то что ввел пользователь, второе - то что есть на самом деле. и далее скрипт сверяет эти значения.
if()
{
}
else()
\\правильно говорю?!
ska ska ska
#4.
Gemor
Гость
2008.06.10 04:04
#6.
Sanya69
Гость
2008.06.28 19:07
ну и каким же образом можно обойти "такую защиту", м ?
просто передавать самому 2 верных значения)
ммм) вот мне тож понадобилось такое) вообщем как зделать этот проверочный еод в гостевухе? не картинкой а текстом?
вот // wsahfvb если быть точнее.
ska ska ska
упрощенно так:
добавь hidden поле в форму и передавай в нем тоже число.
далее скриптом который получает данные из формы сверь число которое ввел пользователь и то значение, которое бло в hidden поле формы.
ну и соответственно если не совпало, то число введено не верно.
не, чтобы число тоже менялось, каждый раз, как кто-нибудь зайдёт в написать...
ska ska ska
Код:
span style="color: #0000BB"><?php$key = rand(1000,99999);print $key;?> |
так.
данные принимаю\обрабатываю так:
Код:
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 секунд: всмысле работает.. если незаполнить это поле), а вот если ещё и правильно это поле я заполнил, то всё равно пишет "неверно введён защитный код"
итог: ну эт я чёта неправильно зделал)
ska ska ska
замени
Код:
span style="color: #0000BB"><?phpif($_POST['key'] != $_POST['rand']){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="rand" value="'.$key.'"/><input type="text" name="key" maxlength="10" size="5"/>';?> |
хм)) Димка Котеров пишет, что про использование функции rand() лучше навсегда забыть!)
лучше, говорит, использавать mt_rand()
Код:
span style="color: #0000BB"><?php$key = mt_rand(1000,9999);print $key;?> |
Добавлено спустя 4 минуты 19 секунд: "Мы намеренно не рассматриваем функции rand() и srand()? потому что качество случайных чисел, которые они выдают, никуда не годится. Настоятельно рекомендуем вместо них использовать описанные ниже функции, а про
rand() вообще забыть." - Димка Котеров
ska ska ska
спс учтемс)
на сколько я помню у rand'а ограничение на максимальное число небольшое. а что подразумевается под "качеством" случайных чисел там не написано?
неа, ненаписано..
ska ska ska