我第一次做PHP / mySQL程序,可能需要一些建议。
我想要创建的程序将按如下方式工作......如果出现问题,它将是您发送到服务器的表单。您希望自己能够填写表格。然后问题将出现在另一个计算机上。
我想我需要写一个mySQL数据库,然后在我将它们连接到我的数据库后从下一个computor中读取它。但是我该如何以最好的方式做到这一点?
我已成功下载XAMPP并在mySQL中创建一个表。还有我放入信息的字段和提交按钮。
我收到错误:
$operationstep = $_POST['Operation step'];
$problem_detail = $_POST['Problem detail'];
注意:未定义的索引:操作步骤 第21行的E:\ xampp \ htdocs \ avvikelse.php
注意:未定义的索引: 第22行E:\ xampp \ htdocs \ avvikelse.php中的问题详情
注意:未定义的变量:operation_step in 第25行的E:\ xampp \ htdocs \ avvikelse.php错误:您输入了错误 你的SQL语法;查看与MySQL对应的手册 服务器版本,用于在“步骤,问题详细信息”附近使用正确的语法 价值观('','','在第1行
// blabla, connetcting...
$operationstep = $_POST['Operation step'];
$problem_detail = $_POST['Problem detail'];
$sql = "INSERT INTO avvikelsekort (Operation step, Problem detail) VALUES
('$operation_step', '$problem_detail')";
if (!mysql_query($sql)) {
die('Error: ' .mysql_error());
}
mysql_close();
?>
我现在按照你说Marco和我得到Array(0){}我的表格看起来像这样
<form action="avvikelse.php" method="POST" />
<p>Operation step: <input type="text" name"Operation step" /></p>
<p>Problem detail: <input type="text" name"Problem detail" /></p>
<input type="submit" value="Submit" />
</form>
答案 0 :(得分:2)
如果在字段名称中使用空格,则必须使用反引号 更多,如果你调用变量
$operationstep = $_POST['Operation step'];
$problem_detail = $_POST['Problem detail'];
您的查询应该是
$sql = "INSERT INTO avvikelsekort (`Operation step`, `Problem detail`) VALUES
('$operationstep', '$problem_detail')";
最后但并非最不重要的是,记住你必须始终清理用户输入以避免sql注入!
<强> EDITED 强>:
你的表格错了。试试这个:
<form action="avvikelse.php" method="POST" />
<p>Operation step: <input type="text" name="Operation step" /></p>
<p>Problem detail: <input type="text" name="Problem detail" /></p>
<input type="submit" value="Submit" />
</form>
答案 1 :(得分:1)
您的帖子/获取名称中不能包含空格:
$operationstep = $_POST['Operation step'];
$problem_detail = $_POST['Problem detail'];
尝试
$operationstep = $_POST['Operation_step'];
$problem_detail = $_POST['Problem_detail'];
或在表单中重命名。
此外:
$operationstep = $_POST['Operation step'];
$problem_detail = $_POST['Problem detail'];
与您正在执行的插入不匹配 - 请注意您在插入上使用的变量名称以及如何引用带空格的列名称:
$sql = "INSERT INTO avvikelsekort (`Operation step`, `Problem detail`) VALUES
('$operation_step', '$problem_detail')";
答案 2 :(得分:0)
您会注意到未定义的索引,因为$_POST
变量中不存在该索引。不要在索引中使用空格。编辑表单并在输入字段的名称属性中使用下划线,并在查询中使用$operation_step
,而在分配时使用$operationstep
。并在查询中使用反引号作为表名。
答案 3 :(得分:0)
正如其他人已经回答的那样,由于$_POST
数组中不存在该值,您将收到未定义的索引消息。
我建议您在将$_POST
数据放入变量之前清理数据,因为任何后期数据都可能包含某些形式的恶意数据,这些数据可能会导致SQL注入攻击。您可以在https://www.owasp.org/index.php/OWASP_Guide_Project