2

我正在为网站构建一个基于 php 的测验。我是初学者。我编写了从数据库中获取问题和选项的代码,并将它们显示在我的页面中。当用户选择选项时,我希望将答案插入到我的数据库中。我写了一些基本代码,但它不起作用请帮助。这是我的代码问题表有 7rows(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>";

?>

4

2 回答 2

2

您需要学习基本的 PHP 语法。$_POST不是函数。这是一个数组。例如

$var = $_POST['var'];
             ^--   ^--- note the bracketing.

即使代码 DID 工作,您也会很容易受到SQL 注入攻击

于 2013-02-22T21:17:01.867 回答
2

大大大大关注!我希望这只是一个测试代码注释最后一个!

您的代码在这里很容易被注入$a=$_POST['a'];

我建议用这个替换$a= filter_input(INPUT_POST, 'a', FILTER_SANITIZE_STRING); 这是一个逃脱攻击的!

我希望它对你有帮助

于 2013-02-22T21:37:16.423 回答