如何将用户重定向到他们自己的配置文件页面


How to redirect users to their own profile page?

所有用户都有自己的配置文件页面:

www.mysite.com/profile.php?id=13

我现在想做的是将他们重定向到自己的个人资料页面,以防他们只键入:

www.mysite.com/profile.php

我已经尝试过了,但我一直在获得重定向循环:

 if ((preg_match("{(?:profile)'.php$}", $_SERVER["PHP_SELF"])) && 
 (!empty($_SESSION["id"])) )
     {
         redirect ("profile.php?id=$id");        
     }

我是不是少了一步?

$_SERVER['PHP_SELF']包含当前正在执行的脚本的文件名,因此您的条件将始终匹配。

我会用这样的东西:

if ( empty($_GET['id') && !empty($_SESSION['id']) )

$_SERVER["PHP_SELF"]将始终返回profile.PHP,以防其附加id或未附加id,即为什么您的正则表达式总是匹配良好,并且您永远处于重定向循环中

你为什么不把正则表达式做成这样:-

if ((preg_match("/^'/profile'.php$/", $_SERVER[REQUEST_URI])) && 
 (!empty($_SESSION["id"])) )
     {
         redirect ("profile.php?id=$id");        
     }