[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите разобраться
rafail17
Есть форма:

<?php   require_once('reg.php');?>
<form
action="" method="post" name="form" class="blocks" >
<label>
Вопрос: Столица <?=$vopros?> ?</label>
<label>
Ответ:</label>
<input
type="text" class="text" name="user_otvet" />
<?=
$error_user_otvet; ?>
<input
type="submit" class="btn" value="Отправить" />


Файл reg.php :
$user_otvet=trim(!empty($_POST['user_otvet'])?$_POST['user_otvet']:NULL);
$stolica[1][0]='Беларуссии';
$stolica[1][1]='Минск';
$stolica[2][0]='России';
$stolica[2][1]='Москва';
$stolica[3][0]='Украины';
$stolica[3][1]='Киев';
$stolica[4][0]='Франции';
$stolica[4][1]='Париж';
$n=rand(1,4);
$vopros=$stolica[$n][0];
if(strcmp($user_otvet,$stolica[n][1])){
$error_user_otvet='<label class="error">Неправильный ответ</label>';
}
else{
$error_user_otvet='<label class="error">Правильный ответ</label>';
}

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



user posted image



Спустя 30 минут, 21 секунда (15.11.2011 - 19:08) Игорь_Vasinsky написал(а):
выдели код bb-тегами, глаза режет.

Ты используешь короткие теги - они могут быть отключены у хостера

И опечатка

if(strcmp($user_otvet,$stolica[n][1])){


нашёл?

Спустя 5 минут, 58 секунд (15.11.2011 - 19:14) rafail17 написал(а):
С опечаткой понятно, не пойму насчет коротких тегов

Спустя 2 минуты, 8 секунд (15.11.2011 - 19:16) Игорь_Vasinsky написал(а):
Используй

<?php
// код
?>


короткие теги
<? 

?>

Спустя 1 минута, 49 секунд (15.11.2011 - 19:18) rafail17 написал(а):
Нет не в этом дело sad.gif

Спустя 5 минут, 13 секунд (15.11.2011 - 19:23) m4a1fox написал(а):
rafail17
Цитата
Нет не в этом дело
А в этом и не должно быть дело! Тебе сказали
Цитата
Ты используешь короткие теги - они могут быть отключены у хостера

А не то, что исправив, ты избавишься от проблемы!

Спустя 2 минуты, 10 секунд (15.11.2011 - 19:25) m4a1fox написал(а):


if(strcmp($user_otvet,$stolica[n][1] // у n нет знака переменной - внимательнее, и еще. А есть ли такая функция - strcmp?


Спустя 3 минуты, 8 секунд (15.11.2011 - 19:28) rafail17 написал(а):
Цитата (m4a1fox @ 15.11.2011 - 16:23)
А не то, что исправив, ты избавишься от проблемы!

Ну как тогда избавиться от проблемы? Есть ли другие способы

Спустя 1 минута, 7 секунд (15.11.2011 - 19:29) Игорь_Vasinsky написал(а):
Про короткие теги забудь.. абстрагируйся. это был совет.

Ты опечатку исправил?

Спустя 2 минуты, 44 секунды (15.11.2011 - 19:32) rafail17 написал(а):
Да исправил
функция strcmp - Сравнивает строки

Спустя 5 минут, 56 секунд (15.11.2011 - 19:38) Игорь_Vasinsky написал(а):
чёт я понять не могу

Цитата
$n=rand(1,4);


ты что пытаешся случайно проверить - угадал или нет?

а это? ни где не используется?

Цитата
$vopros=$stolica[$n][0];


Раскажи ка алгаритм.

Спустя 11 минут, 14 секунд (15.11.2011 - 19:49) rafail17 написал(а):
Я делаю рандом вопросов(в форме регистрации случайный вопрос), $vopros выводится в форме,
потом надо дать правильный ответ в форме user_otvet
$user_otvet сравнивается с ответом правильным $stolica[$n][1], если нет то выводит в форму сообщение

Спустя 10 минут, 58 секунд (15.11.2011 - 20:00) Игорь_Vasinsky написал(а):
Пробуй
Цитата
$user_otvet=trim(!empty($_POST['user_otvet'])?$_POST['user_otvet']:NULL);


$user_otvet=!empty(trim($_POST['user_otvet'])) ? $_POST['user_otvet'] : NULL);



Цитата
if(strcmp($user_otvet,$stolica[n][1]))


if($user_otvet !== $stolica[$n][1]))

Спустя 10 минут, 46 секунд (15.11.2011 - 20:11) rafail17 написал(а):
Цитата (Игорь_Vasinsky @ 15.11.2011 - 17:00)

$user_otvet=!empty(trim($_POST['user_otvet'])) ? $_POST['user_otvet'] : NULL);



Выдает ошибку

Спустя 30 минут, 14 секунд (15.11.2011 - 20:41) Игорь_Vasinsky написал(а):
я так понял ты сам ни чё делать не хочешь?

это последний мой пост в твоей теме
$user_otvet=!empty(trim($_POST['user_otvet'])) ? $_POST['user_otvet'] : NULL;

Спустя 7 минут, 41 секунда (15.11.2011 - 20:49) #8bit написал(а):
rafail17
У тебя скрипт не правильно написан. Когда первый раз выводится форма переменная $n принимает одно значение. После отправки формы опять срабатывает $n = rand(1, 4); и переменная переопределяется.
У твоего скрипта шанс 1 из 4, что при вводе правильного ответа переменная $user_otvet будет корректна.

Спустя 5 минут, 1 секунда (15.11.2011 - 20:54) rafail17 написал(а):
Цитата (Игорь_Vasinsky @ 15.11.2011 - 17:41)
я так понял ты сам ни чё делать не хочешь?

это последний мой пост в твоей теме
$user_otvet=!empty(trim($_POST['user_otvet'])) ? $_POST['user_otvet'] : NULL;

Вот именно хочу все сам сделать, и все делал сам, я вырезал только проблемный кусок моего кода , весь остальной код отлично работает. Я хочу только разобраться, все что вы мне предлогаете это не то!
и вот эта строка
$user_otvet=!empty(trim($_POST['user_otvet']))?$_POST['user_otvet'] : NULL;

выдает синтаксическую ошитбку.
и дело совсем не в этой строке.

Спустя 1 минута, 27 секунд (15.11.2011 - 20:55) rafail17 написал(а):
Цитата (#8bit @ 15.11.2011 - 17:49)
rafail17
У тебя скрипт не правильно написан. Когда первый раз выводится форма переменная $n принимает одно значение. После отправки формы опять срабатывает $n = rand(1, 4); и переменная переопределяется.
У твоего скрипта шанс 1 из 4, что при вводе правильного ответа переменная $user_otvet будет корректна.

Правильно, я так и сам думал, но как можно правильно весь день промучался?

Спустя 21 минута, 53 секунды (15.11.2011 - 21:17) fire написал(а):
передавай это значение в обработчик например через скрытое поле в форме или сессию или кукис и будет тебе счастье

Спустя 1 минута, 57 секунд (15.11.2011 - 21:19) rafail17 написал(а):
Цитата (fire @ 15.11.2011 - 18:17)
передавай это значение в обработчик например через скрытое поле в форме или сессию или кукис и будет тебе счастье

Спасибо, biggrin.gif буду пробывать через сессии
Быстрый ответ:

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