PHP中的动态表单处理不正确

PHP中的动态表单处理不正确,php,forms,dynamic,Php,Forms,Dynamic,关于这一点,我的最后一个问题建议我将AJAX与PHP结合起来。然而,我真的很想专门为这个项目尝试PHP,我似乎已经做到了95%。在这个问题上我需要帮助 这里是一个快速的背景。我的项目需要一个动态表单来填充最多10个问题。每个表单包含一个问题、一个问题编号和一个文本字段。学生们将继续回答问题。这都是由一个数据库表驱动的(很明显),当一个问题得到正确回答时,它将关闭,并出现下一个问题。页面上总是有10个问题。下面是代码的外观,它可以完美地工作 <? $rt = mysql_query("SE

关于这一点,我的最后一个问题建议我将AJAX与PHP结合起来。然而,我真的很想专门为这个项目尝试PHP,我似乎已经做到了95%。在这个问题上我需要帮助

这里是一个快速的背景。我的项目需要一个动态表单来填充最多10个问题。每个表单包含一个问题、一个问题编号和一个文本字段。学生们将继续回答问题。这都是由一个数据库表驱动的(很明显),当一个问题得到正确回答时,它将关闭,并出现下一个问题。页面上总是有10个问题。下面是代码的外观,它可以完美地工作

<? 
$rt = mysql_query("SELECT * FROM The_Questions WHERE Status='Open' ORDER BY 'Number' LIMIT 10");
while ($row = mysql_fetch_array($rt)) {
$number=$row[0]; 
$category = $row[1];
$question=$row[2];
$points=$row[4];
$_SESSION['number'] = $number; 
?>

<form action="processor.php" method="post" class="qForm">
<div class="questionCell">
<div class="question"><? echo $number; echo $question ?></div>
<div class="answer">Answer: <input class="inputField" name="q1" type="text" size="40" maxlength="40" />
<input name="HHQuestion" value="Submit" type="submit" /></div>
</div>
</form>
<? 
} 
?>
请阅读。这是非常重要的。
此外,请注意:

  • 在你的
    processor.php
    中,mysql\u select\u db
  • 后面的花括号是什么
  • 您是在另一个文件中有
    session\u start()
    ,还是仅在
    processor.php
    中有
  • while()
    循环中,您正在覆盖
    $\u会话['number']
    ,变量中的最后一个条目是
    $rt=mysql\u查询中的最后一条记录(“从问题中选择*,其中Status='Open'ORDER BY'number'LIMIT 10”)所以,当你将限制改为20时,它包含第20个问题是合乎逻辑的
  • 您可以做什么:

  • 将此添加到您的
    并停止使用
    $\u会话


    omg,可以是真正特定的。这会危及我的神经系统。也许你应该尝试不进行残酷的$u会话。温和而温和。天哪,这是易受攻击的,不安全的代码,SQL注入,难以修复,清理你的风格。尝试在新的干净项目上编写代码。为什么您应该使用会话进行简单的选择?顺便说一句,我认为
    选择问题,回答数字='$number1'
    (并清理
    $Number
    ,确保它只是一个数字(而不是注入的代码),然后访问
    $row['question']
    $row['answer']
    而不是使用数字索引。这非常有效!!!我很少在表单中使用隐藏字段。非常感谢!
    <?php
    session_start();
    if(isset($_POST["HHQuestion"])){
    $dbhost = 'localhost';
    $dbname = 'localhost';
    $dbuser = 'localhost';
    $dbpass = 'localhost'; 
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    mysql_select_db($dbname, $conn);
    {
    $number1 = $_SESSION['number'];
    $answer=$_POST['q1'];
    $sql="SELECT * FROM The_Questions WHERE Number='$number1'";
    $result=mysql_query($sql);
    $row=mysql_fetch_array($result);
    $question = $row[2];
    echo $question .'<br>';
    echo $number1.'<br>';
    echo $answer;
    }
    }
    ?>