2015-04-14 1 views
0

Я разработал капчу, требующую от пользователя ответа на вопрос, который случайно отображается. Моя база данных состоит из идентификатора, вопроса, ответа. Проблема в том, что, хотя я вхожу в правильный ответ, он все же перенаправил меня на error.php вместо success.php.Как подтвердить ввод из базы данных

<?php 
 

 
$database_db="test2"; 
 
$user_db="root"; 
 
$password_db=""; 
 
$host_db="localhost"; 
 

 
$link = mysqli_connect($host_db, $user_db, $password_db, $database_db); 
 

 
/* check connection */ 
 
if (mysqli_connect_errno()) 
 
{ 
 
    die ("couldnot connect: ".mysqli_connect_error()); 
 
    exit(); 
 
} 
 
if (array_key_exists("answer", $_POST) AND array_key_exists("question", $_POST)) 
 
{ 
 
    $id = intval($_POST['question']); 
 
    $sql="SELECT question, answer FROM captcha WHERE question='$id' AND    answer='".mysqli_real_escape_string($link, $_POST['answer'])."'"; 
 
    $result = mysqli_query($link, $sql) or exit('$sql failed: '.mysqli_error($link)); 
 
    $num_rows = mysqli_num_rows($result); 
 
    if($num_rows > 0) 
 
    { 
 
     header("Location: success.php"); 
 
    } 
 
    else 
 
    { 
 
     header("Location: error.php"); 
 
    } 
 
    exit; 
 
} 
 
else 
 
{ 
 
    $query = "SELECT id, question FROM `captcha` ORDER BY RAND() LIMIT 1"; 
 
    if ($result = mysqli_query($link, $query)) 
 
    { 
 
     if ($row = mysqli_fetch_assoc($result)) 
 
     { 
 
      $id = $row["id"]; 
 
      $question = $row["question"]; 
 
     } 
 
    } 
 
} 
 

 
?> 
 
<html> 
 
<body> 
 
    <form method="post"> 
 
     <?php echo $question; ?><br /> 
 
     <input type="hidden" name="question" id="question" value="<?php echo $id; ?>" /> 
 
     <input type="text" name="answer" id="answer" /><br /> 
 
     <input type="submit" name="submit" value="submit" /><br /> 
 
     </form> 
 
    </body> 
 
</html>

ответ

1

Похоже, вы запрашивая неправильный столбец для матча $id:

"SELECT question, answer FROM captcha WHERE question='$id' AND ... " 

Я думаю, что это должно быть:

"SELECT question, answer FROM captcha WHERE id='$id' AND ... " 
+0

thanksssss. ..........! действительно ценю это .... теперь это работает! знак равно –