我在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>
答案 0 :(得分:2)
我不知道您的问题是否直接来自此问题,但是当您使用mysqli_real_escape_string
时,您必须将您的连接作为该函数的第一个参数发送,请参阅文档以获取更多详细信息:{ {3}}。所以这看起来像这样:
$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');
希望这有帮助!
答案 1 :(得分:0)
尝试调试您的查询:
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 ['username']);
$ password = mysqli_real_escape_string($ con,$ _POST ['password']);
$ email = mysqli_real_escape_string($ con,$ _POST ['email']);
希望这有帮助。
和平!的xD
答案 2 :(得分:0)
您必须向表单添加action属性,如:
<form method="POST" action="yourfilename.php" id="join">
<input type="text" placeholder="Username" name="username">
<input type="password" placeholder="Password" name="password">