我希望有人可以幫我解決我的問題。基本上我試圖創建的是一個登錄系統,而客戶可以登錄查看他們的包裹詳細信息(地址,帳單號碼等)。但是我很困惑我如何根據登錄的用戶顯示客戶結果登錄時顯示客戶信息
到目前爲止,我有2個表格,一個叫做userlogin和一個叫做userinfo。 用戶登陸只包含用戶名和密碼的數據,而用戶信息將包含所有的客戶信息(地址,賬單號等)。這兩個表共用一行具有相同的值,user_id。我嘗試過使用MYSQL內部連接等,但我不確定哪裏出錯,爲什麼我不能返回一個用戶信息,而是顯示所有結果,或者不顯示任何結果。
這是我的2頁的代碼,首先是登錄頁面。
//Login.php
session_start();
if($user_is_valid) {
//Store the id in the session
$_SESSION['user_id'] = $user_id;
//Redirect to the home-page
header('Location: home.php');
exit;
}
////// Login Section.
$Login=$_POST['Login'];
if($Login){ // If clicked on Login button.
$username=$_POST['username'];
$password=$_POST['password']; // Encrypt password with md5() function.
// Connect database.
//connect
$con = mysql_connect("*****","*****","*****");
if (!$con){
die('Could not connect: ' . mysql_error());
}
//datebase
mysql_select_db("*****", $con);
// Check matching of username and password.
$result=mysql_query("select * from userlogin where username='$username' and password='$password'");
if(mysql_num_rows($result)!='0'){ // If match.
$_SESSION ['user']['id'] = $result ['id'];
session_register("username"); // Craete session username.
header("location:home.php"); // Re-direct to main.php
exit;
}
else { // If not match.
$message="--- Invalid Username or Password ---";
}
} // End Login authorize check.
這裏是主頁(將顯示客戶信息的頁面)。
//Home.php
if(!strlen(trim($_SESSION['username']))) {
header("Location:login.php");
exit();
}
session_start();
echo $_SESSION['user_id']; //This will output the value we set earlier
$con = mysql_connect("*****","*****","*****");
if (!$con){
die('Could not connect: ' . mysql_error());
}
//datebase
mysql_select_db("*****", $con);
//select
$user_id = $_GET['user_id'];
$result = mysql_query("SELECT userinfo.name as name, userinfo.address as address, userlogin.username as username
FROM userinfo
INNER JOIN userlogin ON userlogin.user_id = userinfo.user_id
WHERE userlogin.user_id = userinfo.user_id");
while($row = mysql_fetch_array($result)){
echo $row['name'] . '</br> ';
echo $row['username'] . '</br> ';
echo $row['address'] . '</br> ';
}
在堅果殼
所以,我所要做的是創建一個系統,而用戶可以去到我們的網站,登錄,然後有顯示自己對他們的信息,但我不能確定在哪裏出了問題,老實說我迷惑了自己。
我明白,我可能沒有很好的解釋這一點,或者我的代碼可能不是很乾淨,但是請任何反饋,問題,或者如果你能指出我在正確的方向我會不勝感激!謝謝!
我認爲首先會真正幫助你的是整理你的代碼。這聽起來很迂腐,但在確定代碼流是否是你認爲的是至關重要的。特別是第二個示例的第3 /第4行在你跳出PHP並返回時很容易產生歧義,而且很難確定你的條件語句是否仍在評估中。我知道,也許有一些是它在這個網站上的格式,但它有助於每個人都有一致的編碼標準。我會盡我所能編輯。 – M1ke
在使用您的SQL查詢中未轉義的值之前對請求進行消毒或使用準備好的查詢。 您的第二頁home.php上的user_id變量是從 中檢索到的查詢字符串,但它似乎並未實際傳遞給home.php。怎麼把當前登錄的用戶的ID存儲在會話中? 您還應該考慮任何人(在您當前的設置中)都可以通過更改請求中的user_id來查看任何用戶的詳細信息。您需要聲明當前登錄用戶的身份並確定他們有權訪問哪些資源。 – oens
同意Morteza;在這裏你已經有了一些正確的代碼,但開始開發Web應用程序的方式並不是盲目破解東西 - PHP是一門很好的語言,但是很容易在早期找到壞習慣。還有其他反饋意見我會給你的查詢(你不需要別名或連接),但正確啓動是最好的建議。 – M1ke