与localhost服务器建立PHP连接?

时间:2017-01-13 22:59:53

标签: php html mysql database

我遇到了将PHP脚本连接到localhost服务器上的数据库的问题。 我已经发布了下面的代码,它是在网站上启用用户注册。 输入框在我运行代码时显示,但在我尝试完成注册时没有任何更新数据库。 作为PHP的新手,我不太了解它可以发现我可能犯的任何错误,或者他们的意思。 关于这个主题的任何帮助将不胜感激,因为有很多关于PHP在线的信息,但我宁愿知道导致此错误的原因是为了防止它在将来发生。

以下是浏览器控制台中出现的错误:

无法加载资源:服务器响应状态为404(未找到)

  

ReferenceError:无法找到变量:$

来自MAMP的UNIX套接字代码(我不知道这适合的位置):

$user = 'root';
$password = 'root';
$db = 'inventory';
$socket = 'localhost:/Applications/MAMP/tmp/mysql/mysql.sock';

$link = mysql_connect(
   $socket, 
   $user, 
   $password
);
$db_selected = mysql_select_db(
   $db, 
   $link
);

PHP代码:     

    //connect to database
    $db = mysql_connect("localhost", "root", "", "authentication");

    if (isset($_POST['register_btn'])) {
        session_start();
        $username =mysql_real_escape_string($_post['username']);
        $email =mysql_real_escape_string($_post['email']);
        $password =mysql_real_escape_string($_post['password']);
        $password2 =mysql_real_escape_string($_post['password2']);


        if ($password == $password2) {
            //create user
            $password = md5($password); //hash password before storing for security 
            $sql = "INSERT INTO users(username, email, password) VALUES('$username', '$email', '$password')";
            mysql_query($db, $sql);
            $_SESSION['message'] = "Find a Table";
            $_SESSION['username'] = $username;
            header("location: HomePage.html"); //redirect to homepage 
        }else{
            $_SESSION['message'] = "Your passwords must match to proceed";

        }



    }


?>

1 个答案:

答案 0 :(得分:0)

从哪里开始?这么多问题。

首先,您正在使用已在最新版本的PHP中完全删除的OLD mysql函数。请改用mysqli功能。旧函数如mysql_connect和mysql_query have been deprecated。您需要在此代码中查找所有出现的 mysql _ ,并考虑将每个命令替换为新的命令。

您可以定义此代码以进行连接:

$user = 'root';
$password = 'root';
$db = 'inventory';
$socket = 'localhost:/Applications/MAMP/tmp/mysql/mysql.sock';

$link = mysql_connect(
   $socket, 
   $user, 
   $password
);
$db_selected = mysql_select_db(
   $db, 
   $link
);

然后你不使用结果连接 - 甚至检查它是否有效。您应该始终检查mysqli_connect返回的值,看它是否真的有效或者是否返回 FALSE 。你再次重新连接,不要费心检查是否有效:

//connect to database
$db = mysql_connect("localhost", "root", "", "authentication");

在这样做的过程中,您将$ db重新定义为其他内容。

此外,您运行查询时不检查它是否成功:

        mysql_query($db, $sql);
        $_SESSION['message'] = "Find a Table";
        $_SESSION['username'] = $username;
        header("location: HomePage.html"); //redirect to homepage 

您应该检查mysqli_query的结果(而不是代码中的mysql_query)以查看它返回的内容。如果INSERT查询有效,则该值为TRUE。

重定向后,您无法调用exit,这意味着重定向尝试后面的所有代码可能最终都会实际执行。