繁体   English   中英

与本地主机服务器建立PHP连接?

[英]Establishing PHP connection with localhost server?

我在将 PHP 脚本连接到本地主机服务器上的数据库时遇到问题。 我已经发布了下面的代码,它是为了在网站上启用用户注册。 当我运行代码时,输​​入框显示为它们应有的样子,但当我尝试完成注册时,数据库没有任何更新。 作为 PHP 的新手,我对它的了解还不够多,无法发现我可能犯的任何错误,或者它们的含义。 任何关于这个主题的帮助将不胜感激,因为网上有很多关于 PHP 的信息,但我宁愿知道是什么导致了这个错误,以便将来防止它发生。

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

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

参考错误:找不到变量:$

还有来自 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";

        }



    }


?>

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

首先,您使用的旧 mysql 函数已在最新版本的 PHP 中完全删除。 请改用mysqli函数。 mysql_connect 和 mysql_query 等旧函数已被弃用 您需要在此代码中查找所有出现的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,这意味着您的重定向尝试之后的所有代码最终可能最终实际执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM