如何将所选选项插入数据库

时间:2013-02-22 21:13:14

标签: php mysql

我正在为网站构建基于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;

2 个答案:

答案 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);这是从攻击中逃脱的!

我希望它能解决你的问题