所以我一直在尝试从头开始创建我的注册 PhP,但我似乎遇到了一些麻烦。有什么想法吗?
<?php
session_start((;
包括('../htdocs/connect.php'(;
if(!empty($_POST(({
$user = mysqli_real_escape_string($con, $_POST['username']);
$pass = mysqli_real_escape_string(md5(md5($con, $_POST['password'])));
$email = mysqli_real_escape_string($con, $_POST['email']);
$sql = "INSERT INTO users (ID, Username, Password, Email, Active)
VALUES ('','$user','$pass','$email','')";
$query = mysqli_query($sql);
if($query){
echo "You have Been Successfully Registered! Welcome to The Community";
}
else{
echo "I'm sorry. There was a problem with your registration. Please try again later or contact an admin.";
}
}否则{
echo "Oops. Something Went wrong!";
}
?>
编辑:我根据您的建议编辑了代码。
但现在它呼应注册存在问题。
将其更改为:
$sql = "INSERT INTO users (Username, Password, Email)
VALUES ('$user', '$pass', '$email')";
if(mysqli_query($sql)){
因为你没有执行它。
您的查询不起作用,因为您所做的只是测试是否设置了查询字符串$sql
。
您要做的是运行实际查询;在这种情况下,它将如上所述利用mysqli_query()
并检查其响应。
为什么(来自您的评论(
基本上你是说:
if('SQL STRING IS HERE') {
这将评估为TRUE
而不是实际运行插入查询将数据添加到数据库中的表中:
if(mysqli_query($sql)) {
笔记
如Niels Keurentjes stated in the comments
:
此外,使用直接 md5 散列密码几乎比 以纯文本形式存储。考虑使用password_hash
根据发布的新代码进行编辑。
这意味着mysqli_query()
返回false
。
您要做的是通过 [**mysqli_error()
**]3 检查错误消息,如下所示:
if($sql) {
echo "Success......";
} else {
die(mysqli_error($con));
}
注意:其中$con
是数据库连接。
然后回发该信息。
mysqli_real_escape_string
时,您需要将数据库连接作为参数,例如:mysqli_real_escape_string($connection, $_POST['the_post']);
include('../htdocs/connect.php');
可能是您的连接文件未正确包含。是否有任何警告?
或者您的查询可能存在一些错误或拼写错误。请确保它是正确的。
尝试在 SQL 语句之前放置一个 echo 并复制查询并尝试在 phpmhyadmin 中运行它
喜欢这个
echo $sql = "INSERT INTO users (Username, Password, Email)
VALUES ('$user', '$pass', '$email')";