使用PHP将HTML表单数据插入MySQL数据库
我只是想弄清楚将表单数据插入数据库背后的逻辑。下面的代码load.php工作正常。然而,我在process.php中收到了一个语法错误,而且我不确定我的插入代码是否正确。我也怀疑这个代码是安全的,在使用数据库时,我应该考虑的关键安全因素是什么?我知道我问了很多问题,但我只是想了解整个情况。如果您有任何建议和想法,我将不胜感激 谢谢使用PHP将HTML表单数据插入MySQL数据库,html,mysql,database,Html,Mysql,Database,我只是想弄清楚将表单数据插入数据库背后的逻辑。下面的代码load.php工作正常。然而,我在process.php中收到了一个语法错误,而且我不确定我的插入代码是否正确。我也怀疑这个代码是安全的,在使用数据库时,我应该考虑的关键安全因素是什么?我知道我问了很多问题,但我只是想了解整个情况。如果您有任何建议和想法,我将不胜感激 谢谢 **//process.php** <?php require ("load.php"); $fname= $_POST['fname']; $lname=
**//process.php**
<?php
require ("load.php");
$fname= $_POST['fname'];
$lname= $_POST['lname'];
$sql = "INSERT INTO registration (firstname, lastname) VALUES ('$_POST[fname]','$_POST[lname]')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
**//load.php**
<?php
$servername = "localhost";
$database = "registration";
$username = "root";
$password = "";
$conn = mysqli_connect($servername, $username, $password, $database);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
**//index.php**
<?php require ("load.php"); ?>
<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<h3>Registration Form</h3>
<form name="registration" method="post" action="process.php">
<table border="0" cellspacing="2" cellpadding="2">
<tr><td>First Name:</td><td><input type="text" name="fname"></td></tr>
<tr><td>Last Name:</td><td><input type="text" name="lname"></td></tr>
<tr><td> </td><td><input type="submit" name="submit" value="Register"></td></tr>
</table>
</form>
</body>
</html>
尝试以下process.php代码 这将起作用
require ("load.php");
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname) VALUES (?, ?)");
$stmt->bind_param("ss", $firstname, $lastname);
$fname= $_POST['fname'];
$lname= $_POST['lname'];
if ($stmt->execute()) {
echo "New record created successfully";
}
$stmt->close();
不安全您的脚本甚至有被使用的风险。我在进程中不知何故收到一个语法错误。php请不要保留错误消息a secret您的代码对SQL注入是开放的。至于语法错误,实际检查错误消息将是一个良好的开端。如果它来自数据库,那可能是因为SQL注入漏洞,因为您实际上没有控制要执行的代码!感谢您的帮助。我正在尝试解决代码错误,而不是担心安全性@RiggsFolly@RiggsFolly编辑为准备好的语句$fname,$lname应为$firstname,$lastname,反之亦然