我正在設計在線測試系列。我希望用戶選擇答案時,應通過存儲在數據庫中的答案進行驗證,並根據正確和不正確的選擇移至下一個問題。我正在使用PHP和mysqli。有人能告訴我如何獲得用戶選擇的答案的ID並驗證正確的答案嗎?這是html檢查單擊的單選按鈕是否存儲在數據庫中
<form method="POST" name="try" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">;
<h4> <?php echo $_SESSION["Question"] ?> </h4>
<input type="radio" name="options" value="A" id="A"> <?php echo $_SESSION["OpA"] ?> </input><br>
<input type="radio" name="options" value="B" id="B"> <?php echo $_SESSION["OpB"] ?> </input><br>
<input type="radio" name="options" value="C" id="C"> <?php echo $_SESSION["OpC"] ?> </input><br>
<input type="radio" name="options" value="D" id="D"> <?php echo $_SESSION["OpD"] ?> </input><br>
<input type="radio" name="options" value="E" id="E"> <?php echo $_SESSION["OpE"] ?> </input><br>
<button type="button" class="btn" name="submit" value="submit" >Submit</button>
<?php
$conn = mysqli_connect($servername, $username, $password);
mysqli_select_db($conn , 'myDB');
echo "<form method='get' action=" .htmlspecialchars($_SERVER['PHP_SELF']) . ";>";
$sql = "SELECT * FROM QUANT_MEDIUM ORDER BY RAND() LIMIT 1";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
$_SESSION['ans'] = $row['Correct'];
$_SESSION['Question'] = $row['Ques'];
$_SESSION['OpA'] = $row['Option_A'];
$_SESSION['OpB'] = $row['Option_B'];
$_SESSION['OpC'] = $row['Option_C'];
$_SESSION['OpD'] = $row['Option_D'];
$_SESSION['OpE'] = $row['Option_E'];
}
}
?>
<?php
if (isset($_POST['submit']) and ! empty($_POST['submit']))
{
if (isset($_POST['options']))
{
$radio_input = $_POST['options'];
echo $radio_input;
}
}
else
{
echo "wrong";
}
?>
我用的是客戶端選項,但正如你所說,它不安全。所以我正在轉向服務器端。謝謝。 –
如果你想改善用戶體驗,你可以使用JS來檢查後端。 Js可以顯示加載器動畫,同時它會對您的後端進行調用以檢查用戶是否正確回答。一旦獲得響應,您可以隱藏加載器動畫並重定向到下一個問題或顯示錯誤消息。 – JasperZelf
這是一個好主意,先生。非常感謝幫助:) –