【问题标题】:how to insert selected options into a database如何将选定的选项插入数据库
【发布时间】:2013-02-22 21:13:14
【问题描述】:

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

?>

【问题讨论】:

  • 您能否更具体地说明错误发生的位置?虽然我在 while 循环的第五个 echo 语句中看到了一个,其中有一个分号 (;) 而不是点 (.)。你想连接你看到的那些字符串:)另外我建议你不要像这样使用echo,而只是像这样退出php:?&gt;,输入你的html然后再次输入php,就像&lt;?php

标签: php mysql


【解决方案1】:

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

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

即使代码有效,您也会对SQL injection attacks 敞开心扉。

【讨论】:

  • “你需要学习基本的PHP语法”,并学会阅读错误日志。
【解决方案2】:

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

您的代码在此处注入漏洞$a=$_POST['a'];

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

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    相关资源
    最近更新 更多