簡體   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