<?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>';
}
Почему даже если я ввожу правильный ответ выдается надпись что я ввел неправильный ответ. Подскажите плиз, или другой способ реализации , или натолкните на правильную дорогу.

Спустя 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 написал(а):
Нет не в этом дело

Спустя 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 - Сравнивает строки
функция 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], если нет то выводит в форму сообщение
потом надо дать правильный ответ в форме 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 будет корректна.
У тебя скрипт не правильно написан. Когда первый раз выводится форма переменная $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) |
передавай это значение в обработчик например через скрытое поле в форме или сессию или кукис и будет тебе счастье |
Спасибо,
