我正在为网站构建基于php的测验。我是初学者。我编码从数据库中获取问题和选项,并在我的页面中的表单中显示它们。当用户选择我想要将答案插入我的数据库的选项。我写了一些bsic代码,但它不工作请帮忙。这是我的代码 问题表有7个(qid,question,optiona,optionb,optionc,optiond,answeroption),答案表有simple2rows(qid,answer)
if(isset($_POST['next']))
{
$a=$_POST['a'];
}
if(!isset($a))
{
$a=0;
}
include('connection.php');
mysql_query("INSERT INTO answers (username,qid, option)
VALUES ($username,a-1,'$_POST('option'))");
$sql1="SELECT * FROM exam1 LIMIT 1 OFFSET $a";
$result=mysql_query($sql1);
echo "<form method='post' action='quiz.php'>";
while ($row = mysql_fetch_array($result))
{
echo $row['question']. "<br/>";
echo "<input type='radio' value='optiona' name='option'>" .$row['optiona'];
echo "<input type='radio' value='optionb' name='option'>" .$row['optionb'];
echo "<input type='radio' value='optionc' name='option'>" .$row['optionc'];
echo "<input type='radio' value='optiond' name='option'>" .$row['optiond']; "<br/>";
}
$c=$a-1;
$b=$a+1;
echo "<input type='hidden' value='$c' name='a'>";
echo "<input type='submit' name='previous' value='previous'> ";
echo "<input type='hidden' value='$b' name='a'>";
echo "<input type='submit' name='next' value='next'> ";
echo "<input type='reset' name='reset' value='Reset'>";
echo "</form>";
&GT;
答案 0 :(得分:2)
您需要学习基本的PHP语法。 $_POST
不是函数。这是an array。 e.g。
$var = $_POST['var'];
^-- ^--- note the bracketing.
即使代码DID有效,您仍可以SQL injection attacks开放。
答案 1 :(得分:2)
非常重视!我希望这只是最后一个测试代码注释!
您的代码在$a=$_POST['a'];
我建议用这个替换$a= filter_input(INPUT_POST, 'a', FILTER_SANITIZE_STRING);
这是从攻击中逃脱的!
我希望它能解决你的问题