2011-11-19 50 views
0

我正在試圖在網站上僅顯示會員部分。用戶必須輸入他的用戶名和密碼才能登錄。我爲用戶設置了註冊部分,他們可以在我的網站上創建一個帳戶。會員只有一個網站的部分

同樣如下面的代碼所示,我可以導航到用戶網站的唯一部分。但問題是我需要將值$ myusername傳遞給頁面members_area.php,以便我可以在該頁面上執行一些數據庫查詢。我怎麼做 ?

$sql="SELECT * FROM table_name WHERE email= '$myusername' and password='$mypassword'" ; 
$result=mysql_query($sql,$ms); 

$user_exist = mysql_num_rows($result); 

// if the user is there in the database 
if($user_exist>0){ 

    //start a session over here 
    $_SESSION["valid_user"] = $myusername; 
    Header('Location: members_area.php'); 
} 
+0

你的問題是如何讀取上一頁發佈的HTML輸入表單的值? – Thilo

+0

如果是這樣,也許這有助於:http://stackoverflow.com/questions/5449775/how-to-read-a-webform-with-php – Thilo

回答

4

井的頂部,你有幾種選擇。只有少數是好的。

既然你剛剛保存$名爲myUsername在會話變量,你可以參考上members_area.php:

session_start(); // Don't forget this on each page that uses sessions 
$myusername = $_SESSION["valid_user"]; 

這將是更安全的方法,因爲你已經在這裏建議的內容。其他選項涉及將值與查詢字符串一起傳遞到URL中:

header("Location: members_area.php?user=$myusername"); 

但是,這不安全,很受愚蠢的影響。只是供參考可以完成。

但是,作爲一個附註,我可能會建議您爲每個用戶存儲一個唯一標識符(UID或GUID)。這只是一個只有該用戶具有唯一標識它的數字。你會發現它更強大。

+0

選項1工程..謝謝 –

5

廣告這members_area.php

session_start(); 
$sql="SELECT * FROM table_name WHERE email= '{$_SESSION['valid_user']}'" ; 
$result=mysql_query($sql,$ms); 
if(!mysql_num_rows($result)) die('Please log in first'); 


// The global variable $_SESSION['valid_user'] will contain the username var (email)