2011-11-19 49 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)