注册PHP脚本

时间:2014-06-18 07:10:34

标签: php

所以我一直试图从Scratch创建我的注册PhP但是我似乎遇到了一些麻烦。任何想法?

<?php

在session_start();

包括( '../的htdocs / connect.php');

如果(!空($ _ 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!";

}

&GT;

编辑:我根据您的建议编辑了代码。

但现在它回应说注册存在问题。

3 个答案:

答案 0 :(得分:1)

将其更改为:

$sql = "INSERT INTO users (Username, Password, Email)
VALUES ('$user', '$pass', '$email')";

if(mysqli_query($sql)){

因为你没有执行它。


您的查询无法正常工作,因为您正在测试是否设置了查询字符串$sql

您要做的是运行实际查询;在这种情况下,如上所述将利用mysqli_query()并检查响应。

为什么(来自您的评论

基本上你说的是:

if('SQL STRING IS HERE') {

评估为TRUE

而不是实际运行insert查询以将数据添加到数据库中的表:

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是数据库连接。

然后回复其中的信息。

答案 1 :(得分:0)

include('../htdocs/connect.php');

可能是您的连接文件未正确包含。有什么警告吗?。

或您的查询可能有一些错误或拼写错误。确保它是正确的。

尝试在sql语句之前放置一个echo并复制查询并尝试在phpmhyadmin中运行它

像这样

echo $sql = "INSERT INTO users (Username, Password, Email)
VALUES ('$user', '$pass', '$email')";

答案 2 :(得分:0)

使用mysqli_real_escape_string

您需要将数据库连接作为参数提供,例如:mysqli_real_escape_string($connection, $_POST['the_post']);