我希望能够在我的PHP中加载前一页的整个URI字符串,例如:
我的网页到达的网址来自:/ test.php?test = test
我知道$_SERVER['HTTP_REFERER']
可以获取test.php
但是如何取回 WHOLE 网址,网页名称以及GET
值?
答案 0 :(得分:0)
您无法在PHP中严格执行此操作,您可以使用浏览器和javascript功能执行此操作,但这很容易被用户操作。除此之外,$_SERVER['HTTP_REFERER']
值仅在某些系统上受支持,因为它具有安全隐患,并且用户也可以轻松编辑,因此本身就不可靠。
如果您确实需要一个完整的页面历史记录(即使只有一个页面)要将访问过的网站页面加载到$_SESSION
变量或数据库中,那么您可以做些什么因访问不同页面而丢失。
因此,在页面标题中,您可以设置一个页面数组$_SESSION['pages']
,并在您运行的每个页面中,在页面顶部将页面值添加到数组中。
这样:
<?php
session_start();
$_SESSION['pages'][] = $_SERVER['REQUEST_URI'];
//structure: shows folder path, filename and query string
//of the URI used to reach the current page.
要查找以前访问过的页面及其查询字符串(GET变量),您可以这样做:
$reverse = array_reverse($_SESSION['pages']);
$returnURL = $reverse[1];
///previous page address: "/page.php?test=test&goat=yes"
unset($reverse);
这是因为$reverse[0]
将您当前所在的页面,因此前面的值为$reverse[1]
。
上面的代码有点hacky,但纯PHP将为您提供所需的内容,而无需使用浏览器(缓存)历史记录或Javascript。