0

我正在处理一个简单的 PHP 表单,但遇到了一个奇怪的问题。它发生在我的本地 MAMP 环境和我的托管网站上。此脚本的目的是根据通过以下表单提交的数据将记录存储到表中。

<?php
    include("dbconnect.php");
    if(isset($_POST['submit']){
        $firstName = $_POST['firstName'];
        $SQLString = "INSERT INTO name_table (first_name) VALUES($firstName)";
        mysql_query($SQLString);
    } else {
        //Debugging script
        $mypostdata = file("php://input");
        print "<pre>"; 
        var_dump($_POST);
        var_dump($mypostdata);
        print "</pre>";
    }
?>

<form name="myForm" action="<?php $_SERVER['PHP_SELF']?>" method="POST">
    <label for="firstName">First Name:</label>
    <input type="text" name="firstName" value="Bob" />
    <input type="submit" name="submit" value="Finish">
</form>

$_POST在输出上使用 var_dump :

array(2) {
  ["firstName"]=>
  string(3) "Bob"
  ["submit"]=>
  string(6) "Finish"
}

var_dump$mypostdata = file("php://input");结果如下:

array(9){
    "name=Bob&submit=Finish"
}

当我提交表单时,表中没有创建记录。

编辑: 为了清楚起见,我最初认为错误与$_POST['myForm']名称有关,NULL但评论和答案已经清除了这一点。

4

3 回答 3

1

http://www.w3.org/TR/html401/interact/forms.html#successful-controls

表单本身未列为“成功控制”(参见 17.2.1),因此不应提交其名称。

于 2013-08-15T23:07:48.003 回答
0

如果 first_name 是一个 varchar,那么它需要在 MySQL 查询中用单引号括起来。例如:

"INSERT INTO name_table (first_name) VALUES('$firstName')";
于 2013-08-16T01:17:15.887 回答
0

更改 $SQLString = "INSERT INTO name_table (first_name) VALUES($firstName)"; 到 $SQLString = "INSERT INTO name_table (first_name) VALUES(".$firstName.")";

如果它不起作用,则通过编写 error_reporting(E_ALL) 来显示页面错误;和 ini_set("display_errors",1);

继续发布结果

于 2013-08-19T14:09:06.490 回答