我有一个PHP注册脚本。提交时,它入到数据库中,但是输入的用户名、密码和电子邮件是空白的(数据库中没有文本)。
这是我的脚本;
<?php
$con = mysqli_connect("localhost","dbuser","dbpass","dbname");
if(isset($_POST['submit'])) {
$username = mysqli_real_escape_string($_POST['username']);
$password = mysqli_real_escape_string($_POST['password']);
$email = mysqli_real_escape_string($_POST['email']);
mysqli_query($con, "INSERT INTO `users` (username, password, email) VALUES ('$username', '$password', '$email')");
}
?>
<form method="POST">
<input type="text" placeholder="Username" name="username">
<input type="password" placeholder="Password" name="password">
<input type="email" placeholder="Email" name="email">
<input type="submit" name="submit">
</form>
数据库结构
我不知道
你的问题是否直接来自此,但是当你使用mysqli_real_escape_string
时,你必须将你的连接作为函数的第一个参数发送,请参阅文档以获取更多详细信息:http://php.net/manual/en/mysqli.real-escape-string.php。所以这看起来像这样:
$username = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$email = mysqli_real_escape_string($con, $_POST['email']);
可能是 php 尝试拍摄一些错误和异常,但默认情况下,php 禁用错误日志记录。尝试在 php 文件的顶部使用它来激活它:
error_reporting(-1);
ini_set('display_errors', 'On');
希望这有帮助!
您必须将操作属性添加到表单中,如下所示:
<form method="POST" action="yourfilename.php" id="join">
<input type="text" placeholder="Username" name="username">
<input type="password" placeholder="Password" name="password">
尝试调试查询:
echo "<pre>";
print_r($_POST); // Are username, email, password showing correctly in the array?
mysqli_query($con, "INSERT INTO `users` (username, password, email) VALUES ('".$username."', '".$password."', '".$email"')") or die(mysqli_error($con)); // Will show an error if something'g wrong with the SQL syntax
检查mysqli_real_escape_string语法:
$username = mysqli_real_escape_string($con, $_POST['用户名']);
$password = mysqli_real_escape_string($con, $_POST['密码']);
$email = mysqli_real_escape_string($con, $_POST['电子邮件']);
希望这有帮助。
和平! xD