我正在处理一个简单的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"
}
$mypostdata = file("php://input");
上的var_dump导致:
array(9){
"name=Bob&submit=Finish"
}
当我提交表单时,表格中没有创建记录。
修改
为清楚起见,我最初认为$_POST['myForm']
名称出现的错误为NULL
,但评论和答案已经清除了。
答案 0 :(得分:1)
http://www.w3.org/TR/html401/interact/forms.html#successful-controls
表单本身未列为“成功控制”(见17.2.1),因此不应提交其名称。
答案 1 :(得分:0)
如果first_name是varchar,那么它需要在MySQL查询中用单引号括起来。 E.g:
"INSERT INTO name_table (first_name) VALUES('$firstName')";
答案 2 :(得分: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);
继续发布结果