[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: captcha не пашет!
grandtriumpher
помогите пжл разобраться...

надо написать каптчу. не спрашивайте зачем... smile.gif

что здесь не так?

<?

session_start();

$_POST['text'] = $_POST['text'] * 1;

if($code = $_POST['text'])
{
echo "Captcha is OK...";
}
else
{
echo "You wrong!";
}

echo "<br><br>";
$code = rand(10000, 99999);
echo "Secure Number: ";
echo($code);

?>

<html>
<
body>

<
br><br>
<
form action="1.php" method="post">
Verify the captcha: <input type="text" name="text">
<
input type="submit">
</
form>

</
body>
</
html>




Спустя 15 минут, 18 секунд (15.02.2010 - 20:28) Kuliev написал(а):
grandtriumpher
а что у тебя в $code храниться?

Спустя 3 минуты, 29 секунд (15.02.2010 - 20:31) grandtriumpher написал(а):
$code = rand(10000, 99999);

Спустя 38 секунд (15.02.2010 - 20:32) Rapp_colince написал(а):
А точно должно быть так
if($code = $_POST['text'])

Может вот так:
if($code == $_POST['text'])

Спустя 29 секунд (15.02.2010 - 20:32) sergeiss написал(а):
Цитата (grandtriumpher @ 15.02.2010 - 21:12)
if($code = $_POST['text'])

При сравнении испльзуется знак ==, а не одинарное "равно". (пока писал - уже ответили эту часть smile.gif)

И какой смысл от $_POST['text'] = $_POST['text'] * 1; ?

Спустя 3 минуты, 5 секунд (15.02.2010 - 20:35) grandtriumpher написал(а):
sergeiss
$_POST['text'] = $_POST['text'] * 1 превращает стринг в интегер.

я пробовал и = и == и даже ===. не клеется...

в чем проблема?

Спустя 5 минут, 31 секунда (15.02.2010 - 20:41) sergeiss написал(а):
Для превращения в целое существуют другие способы:
$int_from_text=intval( $_POST['text'] ); (это только один из них)

А с какого перепугу у тебя вообще должно что-то работать? Вот смотри. Ты создал код. Вывел его на экран... И забыл про него! Затем ты вызываешь скрипт. Это уже другой экземпляр скрипта. Он ничего не знает про то, что в его предке была создана переменная $code.
У тебя правильный подход - создать сессию. Но надо еще и сохранить переменные сессии, чтобы их можно было использовать позднее. Ты же этого не делаешь.

Спустя 5 минут, 3 секунды (15.02.2010 - 20:46) grandtriumpher написал(а):
sergeiss
Цитата
Для превращения в целое существуют другие способы:
$int_from_text=intval( $_POST['text'] );

я знаю. я умножаю на 1 так для себя, на скорую руку... smile.gif

разве переменные не переходят сами по себе если сессия существует?
(йа чайнег, сильно не судить! smile.gif )

Спустя 1 минута, 45 секунд (15.02.2010 - 20:48) sergeiss написал(а):
Цитата (grandtriumpher @ 15.02.2010 - 21:46)
разве переменные не переходят сами по себе если сессия существует?

Только "переменные сессии", которые ты укажешь для переноса в явном виде. А простые переменные таковыми не являются.

Цитата (grandtriumpher @ 15.02.2010 - 21:46)
я знаю. я умножаю на 1 так для себя, на скорую руку...

Лучше привыкать писать сразу правильно, тем более, что примерно столько же кнопочек нажать надо smile.gif
Как приучишь себя изначально, так и дальше будешь делать.

Цитата (grandtriumpher @ 15.02.2010 - 21:46)
йа чайнег, сильно не судить!

А без суда, типа "просто попинать" можно? wink.gif

Спустя 3 минуты, 7 секунд (15.02.2010 - 20:51) grandtriumpher написал(а):
sergeiss
а как переменную $code сделать переменной сессии?

Спустя 2 минуты, 22 секунды (15.02.2010 - 20:53) sergeiss написал(а):
У меня в подписи есть ссылка "Хэлп по РНР". Идешь туда, качаешь, ищешь массив $_SESSION и всё, что с ним связано.

Спустя 13 минут, 31 секунда (15.02.2010 - 21:07) grandtriumpher написал(а):
ок, я догнал ошибку... все равно не дает!

<?

session_start();

$_POST['text'] = $_POST['text'] * 1;

if($_SESSION['code'] = $_POST['text'])
{
echo "Captcha is OK...";
}
else
{
echo "You wrong!";
}

echo "<br><br>";
$_SESSION['code'] = rand(10000, 99999);
echo "Secure Number: ";
echo($_SESSION['code']);

?>

<html>
<
body>

<
br><br>
<
form action="1.php" method="post">
Verify the captcha: <input type="text" name="text">
<
input type="submit">
</
form>

</
body>
</
html>

Спустя 4 минуты, 46 секунд (15.02.2010 - 21:11) grandtriumpher написал(а):
теперь все ок... надо было == поставить...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.