2013-04-25 76 views
0

我正在构建一个应用程序,并刚刚添加了一个运行良好的登录页面,并与数据库中的“用户名”和“密码”字段进行通信。登录后,它会带您访问用户有权查看的页面。如何使用会话变量输出登录用户名

有没有一种方法可以显示“Welcome,xxx”给在下一页登录的特定用户?更重要的是,在下一页输出登录用户的详细信息?谢谢。

回答

0

只需验证会话并从数据库中调用相应的用户即可。假设你正在使用一个会话

$_SESSION['loggedin'] = 'USERNAME'; 

使用者名称,让你只运行一个查询调用使用mysql数据库查询,如

$user =$_SESSION['loggedin']; 
mysql_query("SELECT * FROM TABLENAME WHERE user = '$user'"); 

的用户名和其他信息,这只是一个example.I推荐使用salt并加密会话,然后调用查询。还使用mysqli/PDO作为mysql已过时。以上仅为例

3

您可以使用SESSION临时存储可在整个页面上看到的数据。 .. 检查成功登录凭据后,您可以存储在会话

<?php 
    session_start();  
    $_SESSION['username'] = $user_name; 
    ?> 

用户数据存储在会话的用户数据后,您现在可以直到你取消设置的会话数据访问在不同页面的数据

<?php 
session_start();  
if (!isset($_SESSION['username'])) { 
    echo 'Welcome, '.$_SESSION['username']; 
} else { 
echo 'Sorry, You are not logged in.'; 
} 
?> 

当用户注销时,取消注册这些会话变量。会话变量的注销可通过以下方式进行:

<?php 
session_start(); 
unset($_SESSION['username']); 
?> 
+0

有没有一种方法,我可以做到这一点,而无需使用会话变量,因为我的网站只有2页? – Dude 2013-04-25 13:59:41

+0

也就是说,获取登录人员的用户名并将其显示在其他页面上。 – Dude 2013-04-25 14:00:36

+0

有没有理由不使用会话? – 2013-04-26 03:33:01

0

你听说过PHP会议上,你可以把用户名在会议上这样

$_SESSION['username'] 

它可以在接下来的页面请求中使用,直到你登出。

+0

我有,但是不一定要等于存储变量用户名值? – Dude 2013-04-25 14:03:58

+0

是的,就像$ _SESSION ['username'] = $ user_name; – 2013-04-25 15:35:12

+0

我尝试过,但是不应该首先声明$ user_name并指定它与数据库中的User_name字段相关? – Dude 2013-04-26 08:40:29

0

是的,你确定你可以这样做。我希望当你检查有效的用户名和密码时,你可以在会话变量中设置用户名或userdetail。如果您已设置变量,则始终可以打印该会话变量。确保您已在页面开始处开始会话。

例如,如果您已设置

$_SESSION['user'] = 'Ram'; 

,你可以简单地打印

echo $_SESSION['user'];