>编辑:
如果我使用以下脚本,它会与其他页面产生一些冲突:
if (!isset( $_GET[ "id" ] ) ) {
header( "Location: home.php" );
}
这允许访问者访问带有URL参数的所有页面,例如:我不想要的friends.php?id=22
。访问者应访问的唯一带有参数的URL是profile.php?id=$id
处理一个需要用户注册/登录的小项目。
到目前为止,如果访问者(未登录)输入profile.php
,他们将自动被重定向到主页。
现在,我试图完成的是,如果他们想特别查看用户的个人资料,例如profile.php?id=22
,请不要重定向他们。
这是我到目前为止所拥有的:
if ((!preg_match(" {(?:login|logout|signin|register|profile)'.php$}",
$_SERVER["PHP_SELF"])) && (empty($_SESSION["id"])) )
{
header('Location: home.php');
}
不幸的是,这将重定向所有输入profile.php?id=22
的访问者。
简而言之
profile.php
应该重定向,profile.php?id=$id
不应该。
这可以像这样简单:
if ( !isset( $_GET[ "id" ] ) ){
header( "Location: home.php" );
exit();
}
基本上,我在这里所做的是测试魔术$_GET
变量中id
键的存在。$_GET
变量由您在 URL 中传递的所有参数填充。如果未设置$_GET[ "id" ]
,则重定向到home.php
。
引用:
-
$_GET
-
isset()
Try this:
if (!isset($_GET["id"]))
{
header('Location: home.php');
}