PR0Z0N » 2008.06.08 15:33

П0дскажите каг замутить текстовый проверочный код?

Gemorr » 2008.06.09 08:40

серьезную защиту таким образом не сделаешь. отображай проверочное число как текст и еще нужно его передать скрипту, чтобы знать с чем сверять то, что ввел пользователь. единственный нормальный способ, это передавать число через сессию, иначе обойти такую "защиту" будет ну совсем уж просто.
все эти проверочные строятся на простом алгоритме - передается 2 значения, первое - то что ввел пользователь, второе - то что есть на самом деле. и далее скрипт сверяет эти значения.

denich » 2008.06.09 22:46

if()
{

}
else()

\\правильно говорю?!

Gemor » 2008.06.10 08:09

Код:

1
2
3
4
if(){
}
else{
}
denich » 2008.06.10 20:31

почти)))

Sanya69 » 2008.06.28 23:02

ну и каким же образом можно обойти "такую защиту", м ?

Gemorroj » 2008.07.02 17:30

просто передавать самому 2 верных значения)

denich » 2008.07.05 13:20

ммм) вот мне тож понадобилось такое) вообщем как зделать этот проверочный еод в гостевухе? не картинкой а текстом? вот // wsahfvb если быть точнее.

Gemorroj » 2008.07.05 19:20

упрощенно так:
добавь hidden поле в форму и передавай в нем тоже число.
далее скриптом который получает данные из формы сверь число которое ввел пользователь и то значение, которое бло в hidden поле формы.
ну и соответственно если не совпало, то число введено не верно.

denich » 2008.07.07 16:46

не, чтобы число тоже менялось, каждый раз, как кто-нибудь зайдёт в написать...

Gemorroj » 2008.07.08 10:06

Код:

1
span style="color: #0000BB"><?php$key = rand(1000,99999);print $key;?>
denich » 2008.07.08 12:48

так.
данные принимаю\обрабатываю так:
Код:
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 секунд:
всмысле работает.. если незаполнить это поле), а вот если ещё и правильно это поле я заполнил, то всё равно пишет "неверно введён защитный код"

итог: ну эт я чёта неправильно зделал)

Gemorroj » 2008.07.08 15:33

замени

Код:

1
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"/>';?>
denich » 2008.07.08 20:35

работает)

denich » 2008.07.10 12:39

хм)) Димка Котеров пишет, что про использование функции rand() лучше навсегда забыть!)
лучше, говорит, использавать mt_rand()

Код:

1
span style="color: #0000BB"><?php$key = mt_rand(1000,9999);print $key;?>

Добавлено спустя   4 минуты  19 секунд:
"Мы намеренно не рассматриваем функции rand() и srand()? потому что качество случайных чисел, которые они выдают, никуда не годится. Настоятельно рекомендуем вместо них использовать описанные ниже функции, а про rand() вообще забыть." - Димка Котеров

Gemorroj » 2008.07.10 13:01

спс учтемс)
на сколько я помню у rand'а ограничение на максимальное число небольшое. а что подразумевается под "качеством" случайных чисел там не написано?

denich » 2008.07.10 13:19

неа, ненаписано..