所有用户都有自己的个人资料页面:
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");
}
我错过了一步吗?
答案 0 :(得分:1)
$_SERVER['PHP_SELF']
包含当前正在执行的脚本的文件名,因此您的条件将始终匹配。
我会使用类似的东西:
if ( empty($_GET['id') && !empty($_SESSION['id']) )
答案 1 :(得分:0)
$ _ SERVER [“PHP_SELF”]将始终返回profile.php,以防它附加id或不是ie。为什么你的正则表达式总是匹配得很好而且你正在永远地进行重定向循环
为什么不制作这样的正则表达式: -
if ((preg_match("/^\/profile\.php$/", $_SERVER[REQUEST_URI])) &&
(!empty($_SESSION["id"])) )
{
redirect ("profile.php?id=$id");
}