【发布时间】:2016-08-29 20:22:19
【问题描述】:
我用 HTML 和 PHP 做了一个测验,由于某种原因,当用户提交响应时,页面没有收到它。收集表单数据的代码部分是
<?php
$_SESSION["questionnumber"]++;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$answer =filter_var($_POST["response"], FILTER_SANITIZE_STRING);;
If ($answer =="A") {
$_SESSION["score"]++;
}
}
if ($_SESSION["questionnumber"]==7){
header ("Location: quizfinish.php");
}
?>
发送表单的代码是
<form role="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" >
<table class='table table-response'>
<tr>
<td class='quiz-response-label'>Your Response</td>
<td class='quiz-response'>
<input class='response' type='text' name='response' size='1'>
</td>
</tr>
</table>
<button class="btn btn-lg btn-primary btn-block" type="submit">Submit Answer</button>
</form>
谁能看到为什么分数没有增加?顺便说一句,正确的答案总是 A。
编辑:我做了一些测试,我认为它的 if ($_SERVER["REQUEST_METHOD"] == "POST") 不是真的。我还在文件顶部开始了会话。
没关系,我修好了。
【问题讨论】:
-
你开始会话了吗?
-
print_r($_POST); var_dump($answer) -
如有疑问,打印_r/var_dump/echo/记录所有内容。
-
If ($answer =="A") {中有一个大写的“i”