如何将静态导航系统更改为PHP动态导航系统?

如何将静态导航系统更改为PHP动态导航系统?,php,mysql,redirect,navigation,login-script,Php,Mysql,Redirect,Navigation,Login Script,如何将静态导航系统更改为PHP动态导航系统,以便从其他静态URL导航到动态URL 比如说, 以下基于会话变量的登录重定向头将经过身份验证的用户重定向到登录页LNK,其ID值存储在Mysql数据库中,其中ID为主键,且具有相应的值1 header('Location: user.php?id=' . $_SESSION['user_id']); 上面的标题将用户重定向到以下动态url www.anysite.com/anydirectory/user.php?id=1 其中有一个导航菜单,如

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

比如说,

以下基于会话变量的登录重定向头将经过身份验证的用户重定向到登录页LNK,其ID值存储在Mysql数据库中,其中ID为主键,且具有相应的值1

header('Location: user.php?id=' . $_SESSION['user_id']); 
上面的标题将用户重定向到以下动态url

www.anysite.com/anydirectory/user.php?id=1
其中有一个导航菜单,如

<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>
现在,各个用户如何导航到链接

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>
因为所有的静态链接都是关于经过身份验证的用户的

注意:您可以在以下位置检查登录会话:


提前感谢您的帮助。

您不应基于get中设置的ID进行身份验证。这很容易更改或删除

建议在代码中编写以下逻辑:

  • 您已成功登录
  • 在cookies(或会话)中设置Id、密码和一些巧妙的安全功能
  • 在每次页面加载时,检查cookie(或会话变量)是否有效
  • 如果无效,则强制用户重新登录
  • 如果有效,则表示您已经拥有用户id

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

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

    可以通过响应/查询预定义的PHP变量(如表单变量和会话变量等)作为herf标记内的主键或唯一键(此处“id”默认为主键和唯一键)的值来完成

    <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>
    
    
    
    好的,看看你的另一个问题,你有一个会话和一个cookie与同一个用户\u id。好的,身份验证过程不仅仅基于id会话。该过程涉及一系列基于会话和cookie的安全措施。现有的进程可以将用户id存储在数据库中,但我想在url中添加基于主键(在本例中为id)的键值对,以便各个用户可以在必要时为链接添加书签,尽管他们可以通过特定的登录页面登录。他们仍然可以为链接添加书签。这就是真正的动态页面是如何生成的。当动态URL没有任何特定的查询字符串和值时,是如何生成的?好吧,想象一下下面的情况。用户将其设置页面设置为书签settings.php?id=20。他注销,另一个用户接管了计算机。如果他登录并单击书签,他将得到一个错误,因为他不是id=20。我再说一遍,不要在GET中使用id来选择用户id,使用session和cookie变量。
    <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>
    
    www.anysite.com/anydirectory/user.php?id=1
    www.anysite.com/anydirectory/setting.php?id=1
    www.anysite.com/anydirectory/profile.php?id=1
    
    <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>