查看个人资料页面 - 根据用户ID的不同,所看到的内容会有所不同。会话问题

时间:2012-01-19 07:05:36

标签: php session profile

我有一个我正在建设的网站。我有一个登录/注册系统和一个成员资料系统。

当用户登录时,会自动将他们定向到他们的个人资料页面。他们可以选择单击编辑配置文件链接并编辑其数据。他们还可以点击其他链接返回查看他们的个人资料。

目前这很有效。

我遇到的问题是导航栏中有一个名为“用户列表”的链接。此链接应该获取数据库中所有当前用户的列表,它使用url末尾的uid =(相应的用户ID#),但是,当您单击任何这些链接时,它返回的配置文件是对于登录用户的那个,而不是他们点击的名称。

我知道这个问题是由我在profile.php页面中的函数引起的:

<?php 

include('core/init.inc.php'); 

$user_info = fetch_user_info($_SESSION['uid']);

?>

由于配置文件页面被告知使用会话uid,我知道任何重定向到profile.php页面都会显示登录的用户信息。

所以,如果我将此函数更改为$ _GET ['uid']'那么我的问题就会出现问题。我能够在用户列表中正确查看用户的配置文件,但之后我的登录用户无法再查看其配置文件或编辑它,因为没有调用会话uid。

所以,我想我想知道我是如何解决这个问题的。如何将不适合登录的配置文件与其自己的个人配置文件分开?请告诉我您需要查看的代码,我很乐意发布。

1 个答案:

答案 0 :(得分:2)

您可以进行检查,如果设置了$_GET['uid'],则使用此变量获取用户信息,否则使用会话变量来获取用户信息。

<?php 

include('core/init.inc.php');    
if (isset($_GET['uid']) && $_GET['uid'] !='')
{
   $user_info = fetch_user_info($_GET['uid']);
}
else
{
   $user_info = fetch_user_info($_SESSION['uid']);
}    
?>