2011-12-15 72 views
0

如何将静态导航系统更改为PHP动态导航系统,以便从其他静态URL导航到动态URL?如何将静态导航系统更改为PHP动态导航系统?

例如,

以下会话变量基于登录重定向报头重定向认证的用户与存储在Mysql数据库他的ID值其中ID是主键lnked着陆页和具有相应的值1

header('Location: user.php?id=' . $_SESSION['user_id']); 

上述头将用户重定向到下面的动态URL,

www.anysite.com/anydirectory/user.php?id=1 

那里有一个NA vigation菜单一样,

<a herf="user.php"> User Account</a> 
<a href="setting.php">User Setting</a> 
<a href="profile.php">User profile</a> 
<a href="logout.php">Log Out</a> 

这里的导航链接,

<a herf="user.php"> User Account</a> 

本身是用户成功登录后,谁已经被重定向到下面的动态链接/页面的静态目标链接/页,

www.anysite.com/anydirectory/user.php?id=1 

现在,如何相应用户导航到该链接,

www.anysite.com/anydirectory/user.php?id=1 

但不

www.anysite.com/anydirectory/user.php 

从像其他的导航链接,

<a href="setting.php">User Setting</a> 
<a href="profile.php">User Profile</a> 

另外,我要如何改变以下静态导航链接,

<a herf="user.php"> User Account</a> 
<a href="setting.php">User Setting</a> 
<a href="profile.php">User profile</a> 

到会话变量基于动态链接与经过身份验证的用户的相应ID值相关联,以便绝对链接看起来像,

www.anysite.com/anydirectory/user.php?id=1 
www.anysite.com/anydirectory/setting.php?id=1 
www.anysite.com/anydirectory/profile.php?id=1 

因为所有的静态链接都是关于一个经过身份验证的用户而已?

注意:您可以在How to redirect the users to their id specific urls/landing pages after they log in?

由于检查登录会话提前任何帮助。

回答

0

您不应该将您的身份验证设置为get中的ID。这可以很容易地更改或删除。

你建议你写在你的代码以下逻辑:

  1. 您在
  2. ID,密码成功登录和一些聪明的安全的东西是在饼干设置(或会话)
  3. 在每个页面负载检查cookie(或会话变量)是否有效
  4. 如果它们无效,则强制用户再次登录
  5. 如果有效,您已经拥有用户标识。

如果您希望用户“访问”其他用户的配置文件或页面,则只应在url中追加用户标识。在facebook profile.php将指向您的个人资料,而profile.php?id = 111将指向ID为111的个人资料。您不希望用户能够访问每个人的设置页面?

+0

好吧,看你的其他问题,您同时拥有一个会话并与同USER_ID – OptimusCrime 2011-12-15 11:43:29

0

我终于解决了这个问题。我在这里发布解决方案,以便它可能成为其他观众的指南。

它可以通过回显/查询预定义的PHP变量,如表单变量&会话变量等作为主键或唯一键的值(这里'id'是默认的主键和唯一键)的值herf标签。

<a href="user.php?id=<?php echo $_SESSION['user_id']; ?>">User Account</a> 
<a href="user.php?id=<?php echo $_SESSION['user_id']; ?>">User Setting</a> 
<a href="user.php?id=<?php echo $_SESSION['user_id']; ?>">User Profile</a>