[英]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.