【发布时间】:2014-03-04 05:55:51
【问题描述】:
<html>
<head>
</head>
<body>
<form action = "insertform.php" method = "post">
field: <input type = "text" name = "fielda">
field2: <input type = "text" name = "fieldb">
thedata: <input type = "text" name = "qdata">
<input type = "submit" name = "submit">
</form>
<?php
if (isset($_POST['submit'])){
$con = mysql_connect("localhost","user","password");
if (!$con){
die("cannot connect" . mysql_error());
}
mysql_select_db("stQutieria",$con);
$sql = "INSERT INTO qtable(fielda, fieldb, qdata) VALUES ("$_POST[fielda]","$_POST[fieldb]","$_POST[qdata]")";
mysql_query($sql,$con);
mysql_close($con);
}
?>
</body>
</html>
编辑:好的!所以我更改了我的代码,我在 $_POST 区域周围使用了双引号或 '。当我使用双引号时,我收到错误说 fielda / fieldb wernt defined,我也收到错误说“语法错误,意外'$_POST'(T_VARIABLE)”......我正在使用的代码来自同一个页面 ass insertform。 php。这是我正在观看的视频http://www.youtube.com/watch?v=j4FUCoCxE8w。如果有人可以在 Skype / msn / teamview 上帮助我,我将不胜感激。
【问题讨论】:
-
您正试图从同一页面执行所有内容。使用
<form action = "" method = "post">而不是<form action = "insertform.php" method = "post"> -
@Fred-ii- 假设这是
insertform.php它会正常工作。 -
是的,你是对的。 @helion3
-
这缺少引号
'$_POST[fielda],'$_POST[fieldb],'$_POST[qdata]'更改为'$_POST[fielda]','$_POST[fieldb]','$_POST[qdata]'但使用此方法可以打开 SQL injection -
除此之外 - 我不确定提交按钮是否也会作为帖子元素发送。您为什么不尝试检查
fielda或fieldb的存在?