gpt4 book ai didi

php - 如何使用 php 检测重定向中的所有页面?

转载 作者:可可西里 更新时间:2023-10-31 23:23:33 25 4
gpt4 key购买 nike

我在quora上看到这个问题,不知道怎么解决

场景--

用户在 one.php 上并单击指向 two.php 的链接

Two.php 将 header 重定向到 three.php

如果我们检查 three.php 上的引用 URL $_SERVER 显示 one.php 而不是 two.php

我们如何发现 two.php 是一个进行了 header 重定向的中间页面?

请注意,我不能对 one.php 或 two.php 做任何可以包含任何参数的事情,说 two.php 包含在重定向中

最佳答案

用 session 保存记录

您可以将堆栈保存在 session 变量上。只需将值移到 $_SESSION["history"],当集合增长到一定大小时从数组末尾删除项目。

例如:

// Need to do this if we wish to store data
session_start();

// Set the history array if it doesn't exist
isset( $_SESSION["history"] ) || $_SESSION["history"] = array();

// Push current URI onto history
array_unshift( $_SESSION["history"], $_SERVER["REQUEST_URI"] );

// Prevent history from exceeding 5 values
array_splice( $_SESSION["history"], 5 );

将其加载到所有 PHP 文件中

这需要添加到每个文件的顶部,或者添加到全局标题模板中,如果有的话。或者,如果您敢,可以使用 auto_prepend_file 全局加载它:

Specifies the name of a file that is automatically parsed before the main file. The file is included as if it was called with the require function, so include_path is used. - Documentation

检查历史

您可以通过访问 $_SESSION["history"] 来显示整个历史:

// Output history array
var_dump( $_SESSION["history"] );

关于php - 如何使用 php 检测重定向中的所有页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com