我今天已經問過一個問題了,我收到了一個好的腳本。 我的意思是?
我嘗試製作一個「邏輯」驗證碼。對真的。不要問問題,我會以某種方式寫出來。但我有一個包含這些行的表的數據庫:id,問題,答案。現在,代碼來了。它顯示了問題,但是當我輸入答案時,它什麼都不做。它應該根據答案重定向到頁面success.php或error.php。
驗證碼數據庫驗證確認不能正常工作
<?php
$database_db="general";
$user_db="root";
$password_db="somepass";
$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("id", $_POST))
{
$id = intval($_POST['id']);
$sql="SELECT question, answer FROM captcha WHERE question='$id' AND answer='".mysqli_real_escape_string($link, $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>
問題出在哪裏?我知道這是第二個「if」聲明中的某處,但不知道在哪裏。請幫忙。
堆棧溢出不是免費的調試服務。你沒有*問過問題*,你剛剛發佈了一段代碼,並告訴我們這是行不通的。 – meagar
_你是否知道「如果'聲明'在第二個地方?出於某種原因,您是否隱瞞有用的調試信息? – David
我知道這一點,因爲據我瞭解的代碼,答案驗證是在代碼的那部分。 – MLL