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

Php 如何将用户重定向到他们自己的配置文件页面?,php,url,redirect,Php,Url,Redirect,所有用户都有自己的配置文件页面: www.mysite.com/profile.php?id=13 我现在要做的是将他们重定向到他们自己的个人资料页面,以防他们只键入: www.mysite.com/profile.php 我已经试过了,但是我一直在得到一个重定向循环: if ((preg_match("{(?:profile)\.php$}", $_SERVER["PHP_SELF"])) && (!empty($_SESSION["id"])) ) {

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

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");        
     }

是否缺少步骤?

$\u服务器['PHP\u SELF']
包含当前执行脚本的文件名,因此您的条件将始终匹配

我会使用类似于:

if ( empty($_GET['id') && !empty($_SESSION['id']) )
$\u服务器[“PHP\u SELF”]将始终返回profile.PHP,以防它附加id或不附加ie。为什么您的正则表达式始终匹配良好,并且您永远在重定向循环中移动

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

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

谢谢你的快速回复。但它似乎不起作用:根本不重定向。。。