2012-07-17 162 views
0

你好我使用这个代码来生成随机问题:检查给出答案的答案,如果匹配随机任务

<?php 
session_start(); //this was missing from this file 
//connect to db 
require_once('db_conn.php'); 

$id=rand(0,13); //2nd number = highest ID 

if ($res = $mysqli->query("SELECT quest FROM table WHERE ID='$id'")){ 

    $resQ = $res->fetch_assoc(); 
    echo "" . $resQ['quest'] . ""; 

    $_SESSION['chckanswer'] = $resQ['guest']; 

    $res->close(); 
} 
$mysqli->close(); 
?> 

而这一次尝试,并检查答案给出的匹配问题:

<?php 
session_start(); 

//more code 

if($stmt = $mysqli->prepare('SELECT quest FROM table WHERE answer=?')){ 
    $stmt->bind_param("s", $_POST['given_answer']); 
    $stmt->execute(); 
    $stmt->bind_result($quest); 
    $stmt->fetch(); 

     if($_SESSION['chckanswer'] != $quest && !empty($_SESSION['chckanswer'])){ 
     echo 'wrong'; 
     exit(); 
     } 
     else{ 
     echo 'ok'; 
     } 
    $stmt->close();  
} 
//more code 

但我得到的错误undifined指数chckanswer

+1

你打电话的session_start();在你得到错误的文件中? – 2012-07-17 13:14:44

+0

@DanPrince,该死的我1秒前。 – 2012-07-17 13:14:55

+1

对于Mike的爱,请使用ORDER BY RAND()LIMIT 1而不是$ id = rand(0,13);如果你添加一个问题,你必须改变你的硬编码为13到14! – Waygood 2012-07-17 13:16:54

回答

0

这是从1号文件丢失:

session_start(); 
0
$id=rand(0,13); // 0-13 

I D on't觉得没有一行ID为 “零”

isset($_SESSION['chckanswer']) ? $_SESSION['chckanswer'] : null; 

加入这一行

+0

但这并不能解决问题 – Pavlos1316 2012-07-17 13:47:23