php - 仅带参数的页面的 URL 重定向

标签 php url redirect

编辑:

如果我使用下面的脚本,它会与其他页面产生一些冲突:

 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

引用文献:

关于php - 仅带参数的页面的 URL 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688700/

相关文章:

php - Symfony 4/Doctrine 2 - 获取真实对象而不是代理

php - 使用ajax将JavaScript数组传输到PHP数组?

python - 使用nginx和gunicorn来服务django

.htaccess 要求域的 WWW,但如果存在且没有硬编码则允许子域

php file_get_contents($url) & 变成 &

Javascript 函数对链接执行数据操作

java - 如何使用 Java 从网站检索 URL?

Mysql 全文搜索不适用于特殊字符

.htaccess - 如何使用 htaccess 重定向一堆文件

javascript - 根据显示宽度更改 URL