我有一个工作正常的表单,但是我需要在表单中添加12个字段。 我将12个字段添加到数据库中,然后编辑了表单,并在表单的php和html中添加了所有字段。 该表单本身是通过电子邮件发送的,但未填充数据库。 没有错误消息,我已经遍历了很多次,找不到丢失的内容。 相关章节如下。 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我有一个简单的表格来接收用户数据并将其插入到sql数据库中。 当用户点击“提交”时,它确实创建了一个新的输入行(因此我知道它正在连接到数据库),但是没有一个值像预期的那样发布。 我一直在关注w3schools的教程,但不确定我的价值观在哪里丢失。 有人能指出我正确的方向吗?
形成:
<?php
$Fname = $_POST["Fname"];
$Lname = $_POST["Lname"];
$Sid = $_POST["Sid"];
$Email = $_POST["Email"];
$Dtype = $_POST["Dtype"];
$Mac = $_POST["Mac"];
?>
<html>
<head>
<title>Register School Device</title>
</head>
<body>
<form method="post" action="SMA_Send.php">
First Name:<input type="text" size="12" maxlength="20" name="Fname"><br />
Last Name:<input type="text" size="12" maxlength="36" name="Lname"><br />
Student ID:<input type="text" size="12" maxlength="12" name="Sid"><br />
Email:<input type="text" size="12" maxlength="36" name="Email"><br />
Device Type:<br />
<select name="Dtype">
<option value="iPad">iPad</option>
<option value="iPhone">iPhone</option>
<option value="AndroidTablet">Android Tablet</option>
<option value="AndroidPhone">Android Phone</option></select><br />
Mac Address:<input type="text" size="12" maxlength="36" name="Mac"><br />
<input type="submit" value="submit" name="submit">
</form>
发送:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO StudentDeviceReg (Fname, Lname, Sid, Email, Dtype, Mac, Date)
VALUES ('$Fname','$Lname','$Sid','$Email','$Dtype','$Mac',NOW())";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
这些属于您的PHP / SQL SMA_Send.php文件,而不属于您的表单。
$Fname = $_POST["Fname"];
$Lname = $_POST["Lname"];
$Sid = $_POST["Sid"];
$Email = $_POST["Email"];
$Dtype = $_POST["Dtype"];
$Mac = $_POST["Mac"];
使用错误报告时 ,会发出未定义变量的信号。
我还需要注意,您当前的代码可以进行SQL注入 。 使用预处理语句或将PDO与预处理语句结合 使用起来更加安全 。
将错误报告添加到文件顶部,这将有助于发现错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告仅应在登台进行,而不应在生产过程中进行。
我在任何地方都看不到您使用$_POST
:
使用$_POST["Fname"]
和其他类似的东西。
或者您可以这样做:
$Fname = $_POST["Fname"];// for the rest also.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.