Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как сделать проверку на почти капчю
 
 автор: hex   (12.09.2010 в 08:00)   письмо автору
 
 


session_start();
$a = rand(1,20);
$b = rand(1,20);
$c = $a + $b;
$_SESSION['proverka'] = $c;
echo "Сколько будет $a + $b = "?";

Делаю так, но не чего не получается

if($_SESSION['proverka']==$_POST['form']){
    echo "ok";
}



Подскажите, за ранние благодарю !

  Ответить  
 
 автор: sim5   (12.09.2010 в 08:56)   письмо автору
 
   для: hex   (12.09.2010 в 08:00)
 

Именно так и делаете как прописано здесь? А подсветка не указывает на ошибку?
<?
echo "Сколько будет $a + $b = "?"; //ваше
if(
$_SESSION['proverka']==$_POST['form'])....
<?
echo "Сколько будет $a + $b = ?"//правильное
if($_SESSION['proverka']==$_POST['form'])....

  Ответить  
 
 автор: HeX   (12.09.2010 в 09:14)   письмо автору
 
   для: sim5   (12.09.2010 в 08:56)
 



<?php
session_start
();
$a rand(1,20);
$b rand(1,20);
$c $a $b;
$_SESSION['proverka'] = $c;
?>
<form method="post" action="">
<br />
<input type="text" name="form" /> 
<br />
<input type="submit"  />
</form>
<?php
echo "Сколько будет $a + $b = ?"
if(
$_SESSION['proverka']==$_POST['form']){
    echo 
"ok";
}
?>




не получается

  Ответить  
 
 автор: Киналь   (12.09.2010 в 09:28)   письмо автору
 
   для: HeX   (12.09.2010 в 09:14)
 

Во-первых, советую делать trim() перед проверкой. Во-вторых, в самом конце выведите на экран значения $_SESSION['proverka'] и $_POST['form'] и посмотрите на них)

  Ответить  
 
 автор: HeX   (12.09.2010 в 09:34)   письмо автору
 
   для: Киналь   (12.09.2010 в 09:28)
 

там не только trim но и strip_tags, вот почему в $_POST['form'] нет значение не пойму
но разберусь

  Ответить  
 
 автор: sim5   (12.09.2010 в 09:54)   письмо автору
 
   для: HeX   (12.09.2010 в 09:34)
 

Во-первых - не именуйте поля формы зарезервированными словами, чтобы не получать проблем в дальнейшем, отучайтесь от этой нехорошей привычки сразу.
Во-вторых, оно и не будет у вас в таком виде работать, так как по приходу формы, рассчитываются новые значения и их сумма помещается в сессию, то есть она уже не будет равна предыдущей, которую вам пришлет пользователь.
<?
if(isset($_POST['check']) && $_POST['check']==$_SESSION['proverka']){ 
    echo 
"ok<br><br>"
}

$a rand(1,20); 
$b rand(1,20); 
$c $a $b
$_SESSION['proverka'] = $c

echo 
"Сколько будет $a + $b = ?";  
?>
<form method="post" action=""> 
<input type="text" name="check" />  
<br /> 
<input type="submit" value="Send" /> 
</form>

  Ответить  
 
 автор: HeX   (12.09.2010 в 10:06)   письмо автору
 
   для: sim5   (12.09.2010 в 09:54)
 

не работает :(

ну да не важно, спасибо

  Ответить  
 
 автор: sim5   (12.09.2010 в 10:07)   письмо автору
 
   для: HeX   (12.09.2010 в 10:06)
 

Не надо ля-ля... в таком виде как я написал, все будет работать.
<?
session_start
();
if(isset(
$_POST['check']) && $_POST['check']==$_SESSION['proverka']){ 
    echo 
$_POST['check'] . " = " $_SESSION['proverka'] . ". OK!<br><br>"
}

$a rand(1,20); 
$b rand(1,20); 
$c $a $b
$_SESSION['proverka'] = $c

echo 
"Число для проверки = " $_SESSION['proverka'] . "<br><br>Сколько будет $a + $b = ?";  
?>
<form method="post" action=""> 
<input type="text" name="check" />  
<br /> 
<input type="submit" value="Send" /> 
</form>

  Ответить  
 
 автор: HeX   (12.09.2010 в 10:10)   письмо автору
 
   для: sim5   (12.09.2010 в 10:07)
 

слыш мне какой резон муфлонить?

  Ответить  
 
 автор: sim5   (12.09.2010 в 10:12)   письмо автору
 
   для: HeX   (12.09.2010 в 10:10)
 

Молодой человек, не ты, а вы. И сессию стартовать надо, которую я не прописал. Думать надо!

  Ответить  
 
 автор: HeX   (12.09.2010 в 10:13)   письмо автору
 
   для: sim5   (12.09.2010 в 10:07)
 

<?
session_start
();
if(isset(
$_POST['check']) && $_POST['check']==$_SESSION['proverka']){ 
    echo 
$_POST['check'] . " = " $_SESSION['proverka'] . ". OK!<br><br>"
}

$a rand(1,20); 
$b rand(1,20); 
$c $a $b
$_SESSION['proverka'] = $c

echo 
"Число для проверки = " $_SESSION['proverka'] . "<br><br>Сколько будет $a + $b = ?";  
?>
<form method="post" action=""> 
<input type="text" name="check" />
<br /> 
<input type="submit" value="Send" /> 
</form>  


ВОТ ТУТ РАБОТАЕТ!!!!, СПАСИБО !!!!!!!!!!

  Ответить  
 
 автор: sim5   (12.09.2010 в 10:13)   письмо автору
 
   для: HeX   (12.09.2010 в 10:13)
 

Что вы говорите, радость то какая...

  Ответить  
 
 автор: HeX   (12.09.2010 в 10:17)   письмо автору
 
   для: sim5   (12.09.2010 в 10:13)
 

ВООБЩЕМ ПОСИБО ПОМОГЛИ !!!!

  Ответить  
 
 автор: HeX   (12.09.2010 в 10:13)   письмо автору
 
   для: HeX   (12.09.2010 в 10:13)
 

СТАРТОВАЛ



session_start();
if(isset($_POST['check']) && $_POST['check']==$_SESSION['proverka']){ 
    echo $_POST['check'] . " = " . $_SESSION['proverka'] . ". OK!<br><br>"; 
}

$a = rand(1,20); 
$b = rand(1,20); 
$c = $a + $b; 
$_SESSION['proverka'] = $c; 

echo "Число для проверки = " . $_SESSION['proverka'] . "<br><br>Сколько будет $a + $b = ?";  
?>
<form method="post" action=""> 
<input type="text" name="check" />  
<br /> 
<input type="submit" value="Send" /> 
</form>



ТУТ НЕ РАБОТАЛ ЛИСТИНГ

  Ответить  
 
 автор: sim5   (12.09.2010 в 10:18)   письмо автору
 
   для: HeX   (12.09.2010 в 10:13)
 

Какой еще листинг? Вы хоть знаете что этим словом называется?
Не работать у вас могло только в том случае, если вы слепо копируете не задумываясь. Я же, просто пишу примеры в редакторе, это проще, ибо есть подсветка кода, а сессия у меня стартуется завсегда, а дважы ее не запускают....
И "тут" будет работать прекрасно, ибо оно один к одному равно тому, что выше.

  Ответить  
 
 автор: HeX   (12.09.2010 в 10:26)   письмо автору
 
   для: sim5   (12.09.2010 в 10:18)
 

Я ПОД LINUX, И ПЕРВЫЙ ВАШ ПРИМЕР НЕ РАБОТАЛ ,
ВТОРОЙ ЗАРАБОТАЛ И ЗА ЭТО СПАСИБО

  Ответить  
 
 автор: sim5   (12.09.2010 в 10:38)   письмо автору
 
   для: HeX   (12.09.2010 в 10:26)
 

А какая разница? В них различие только в одном - не прописана сессия, чего вам надо было сделать. Если вы каждое пишите отдельным файликом, ну это то не надо забывать делать.
А листингом в программировании принято называть результат работы программы. Например, результат генереции Ассемблером при ассемблировании инструкций.

  Ответить  
 
 автор: Киналь   (12.09.2010 в 11:39)   письмо автору
 
   для: sim5   (12.09.2010 в 10:38)
 

>А листингом в программировании принято называть результат работы программы. Например, результат генереции Ассемблером при ассемблировании инструкций.

Э-э... Википедия: «Листинг — бумажная распечатка текста компьютерной программы или её части.»

М?

  Ответить  
 
 автор: sim5   (12.09.2010 в 11:49)   письмо автору
 
   для: Киналь   (12.09.2010 в 11:39)
 

Знаю, что еще и сам код программы называют так, но это не верно. Листинг это результат прогона все таки, работа интерпретатора или компилятора, а не сам текст кода.
Кстати, если не ошибаюсь, то термин листинг есть и в экономике, где им называт вроде бы как список документов, которые прошли определенный этап, а не просто их перечень.

  Ответить  
 
 автор: Киналь   (12.09.2010 в 13:45)   письмо автору
 
   для: sim5   (12.09.2010 в 11:49)
 

>Знаю, что еще и сам код программы называют так, но это не верно.

Спор «Вы против Википедии»=)

>Кстати, если не ошибаюсь, то термин листинг есть и в экономике, где им называт вроде бы как список документов, которые прошли определенный этап, а не просто их перечень.

Тот же источник: «Листинг (экономика) — Внесение акций компании в список акций, котирующихся на данной бирже»

  Ответить  
 
 автор: sim5   (12.09.2010 в 13:59)   письмо автору
 
   для: Киналь   (12.09.2010 в 13:45)
 

А Википедия, это что законодатель? Я привык еще с Ассемблера называть листингом результаты прогона программы, которые записываются в файл - результат создания объектного кода, связей объектного кода, создание результирующего HEX-дампа и т.п.. Вот это называется листингом, а строчки исходного кода, это просто строки, который можно (если знать хорошо) писать сразу в шестнадцатеричном виде, что далеко от строчек и трудно назвать листингом.

Не поленился тоже заглянуть об экономии. Вы вырываете из контекста, а посему трактуете не верно, а там написано:

Листинг (от англ. list — список) — совокупность процедур включения ценной бумаги в биржевой список (список акций, котирующихся на данной бирже, для допуска к биржевым торгам только тех акций, которые прошли экспертную проверку) в порядке, утверждённом организаторами торговли, осуществление контроля за соответствием ценных бумаг условиям и требованиям организатора торговли. К листингу также относят определение величины курса ценных бумаг, а также регистрацию и публикацию их курсов (цен) в биржевых бюллетенях.

А если внимательно почитать далее, то там же описаны и процедуры сами. Так что это далеко не просто список (по аналогии с программированием - не просто строки кода). Я не экномист, но когда-то помогал будущему бухгалтеру (студенту), и об этом термине услышал от него, она мне что-то поясняла, что я и запомнил.

PS. Да и лист, это просто список (строки чего-то), а вот термин от него произошедший, это уже процесс - листинг.

  Ответить  
 
 автор: Киналь   (12.09.2010 в 14:31)   письмо автору
 
   для: sim5   (12.09.2010 в 13:59)
 

>А Википедия, это что законодатель?

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

  Ответить  
 
 автор: sim5   (12.09.2010 в 14:39)   письмо автору
 
   для: Киналь   (12.09.2010 в 14:31)
 

Я не словарем руководствуюсь, ибо нет такого слова в словаре нашем, а логикой, той, что описана в учебниках о программировании. Из них я почерпнул этого понятие, а не из Википедии. Что там в Википедии пишут, мне как-то.... )

  Ответить  
 
 автор: Trianon   (12.09.2010 в 10:50)   письмо автору
 
   для: HeX   (12.09.2010 в 10:26)
 

Не хотите в правила заглянуть?
Последний абзац как раз для Вас.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования