所有用户都有自己的配置文件页面:
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");
}