我有一个多项选择测验,可以通过这样的网址发送一个可能的答案
<form method="post" action="test2score.php?q=<?php echo $quiz_id; ?>">
在test2score.php页面上读取并尝试比较像这样的值
$ans = mysql_result(mysql_query('select c_answer from quiz where quiz_id = "'.$_GET['q'].'"'),0);
if ($_POST['answer'] == $ans){
echo "You got it right!";
}else if ($_POST['answer'] <> $ans){
echo "You got it wrong!";
}
其中c_answer是存储在db中的正确答案,但即使我选择了正确的答案并发布它仍然回应“你弄错了”
任何帮助将不胜感激。
答案 0 :(得分:0)
您的表单method="post"
已发布,而您在[{1}}中的接收值正好是正确的
或者使用
$_GET['q']
答案 1 :(得分:0)
使用隐藏字段q并将该值发布到您的操作页面并使用
接收该值$_POST['q'] and use that in your query.
感谢。
答案 2 :(得分:0)
为什么在$ _POST表单的操作中使用$ _GET请求?既然您并不担心自己的用户看到q
的价值,那么为什么不在表单中添加隐藏的输入,结果为q
:
<input type="hidden" value=<?php echo $quiz_id ?> name="q" />
然后在您的查询中,检查$_POST['q']
似乎是实现这一目标的更合理,更合乎逻辑的方式
答案 3 :(得分:0)
而不是从表单操作传递测验ID而不是从隐藏表单字段传递它
如下 将表单操作设置为
action="test2score.php"
并将隐藏的表单字段设为
<input type="hidden" name="q" value=<?php echo $quiz_id; ?> />
并获得如下所示的值
$_POST['q'];