注册 php 脚本


Registration Php Script

所以我一直在尝试从头开始创建我的注册 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')";