надо написать каптчу. не спрашивайте зачем...
что здесь не так?
<?
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 храниться?
а что у тебя в $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']) |
При сравнении испльзуется знак ==, а не одинарное "равно". (пока писал - уже ответили эту часть )
И какой смысл от $_POST['text'] = $_POST['text'] * 1; ?
Спустя 3 минуты, 5 секунд (15.02.2010 - 20:35) grandtriumpher написал(а):
sergeiss
$_POST['text'] = $_POST['text'] * 1 превращает стринг в интегер.
я пробовал и = и == и даже ===. не клеется...
в чем проблема?
$_POST['text'] = $_POST['text'] * 1 превращает стринг в интегер.
я пробовал и = и == и даже ===. не клеется...
в чем проблема?
Спустя 5 минут, 31 секунда (15.02.2010 - 20:41) sergeiss написал(а):
Для превращения в целое существуют другие способы:
$int_from_text=intval( $_POST['text'] ); (это только один из них)
А с какого перепугу у тебя вообще должно что-то работать? Вот смотри. Ты создал код. Вывел его на экран... И забыл про него! Затем ты вызываешь скрипт. Это уже другой экземпляр скрипта. Он ничего не знает про то, что в его предке была создана переменная $code.
У тебя правильный подход - создать сессию. Но надо еще и сохранить переменные сессии, чтобы их можно было использовать позднее. Ты же этого не делаешь.
$int_from_text=intval( $_POST['text'] ); (это только один из них)
А с какого перепугу у тебя вообще должно что-то работать? Вот смотри. Ты создал код. Вывел его на экран... И забыл про него! Затем ты вызываешь скрипт. Это уже другой экземпляр скрипта. Он ничего не знает про то, что в его предке была создана переменная $code.
У тебя правильный подход - создать сессию. Но надо еще и сохранить переменные сессии, чтобы их можно было использовать позднее. Ты же этого не делаешь.
Спустя 5 минут, 3 секунды (15.02.2010 - 20:46) grandtriumpher написал(а):
sergeiss
Цитата |
Для превращения в целое существуют другие способы: $int_from_text=intval( $_POST['text'] ); |
я знаю. я умножаю на 1 так для себя, на скорую руку...
разве переменные не переходят сами по себе если сессия существует?
(йа чайнег, сильно не судить! )
Спустя 1 минута, 45 секунд (15.02.2010 - 20:48) sergeiss написал(а):
Цитата (grandtriumpher @ 15.02.2010 - 21:46) |
разве переменные не переходят сами по себе если сессия существует? |
Только "переменные сессии", которые ты укажешь для переноса в явном виде. А простые переменные таковыми не являются.
Цитата (grandtriumpher @ 15.02.2010 - 21:46) |
я знаю. я умножаю на 1 так для себя, на скорую руку... |
Лучше привыкать писать сразу правильно, тем более, что примерно столько же кнопочек нажать надо
Как приучишь себя изначально, так и дальше будешь делать.
Цитата (grandtriumpher @ 15.02.2010 - 21:46) |
йа чайнег, сильно не судить! |
А без суда, типа "просто попинать" можно?
Спустя 3 минуты, 7 секунд (15.02.2010 - 20:51) grandtriumpher написал(а):
sergeiss
а как переменную $code сделать переменной сессии?
а как переменную $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 написал(а):
теперь все ок... надо было == поставить...