0

我在第一页有以下代码:

$_SESSION['redirect_address'] = $_SERVER['REQUEST_URI'];

当我$_SESSION['redirect_address']在下一页调用时,它给了我这样的信息:

/host/example.php?1508270070

虽然它必须给我一些类似的东西:

/host/example.php?url=XYZ

当我检查$_SESSION['redirect_address']第一页最后代码的值时,它给了我正确的值,而$_SESSION['redirect_address']在第二页代码的最开始检查相同的值,它返回数字,试图清除 cookie,但没有运气。

在网上花了4个小时,没有人能回答我的问题,请帮忙!

4

1 回答 1

0

你的 NGINX 正在做一些它可能不应该做的事情

...但这就是它当前的配置

  1. 根据RFC3986,完整路径和“查询字符串”应包含在 URI 中。
  2. 根据PHP $_SERVER文档,$_SERVER('REQUEST_URI') 不一定包含查询字符串。不同的服务器配置和 php 版本对于存储在此变量中的数据(如果有)有非常不同的结果。

检查您的环境

根据您现有环境的配置,您可能应该检查以下 SERVER 变量的实际值:QUERY_STRINGORIG_PATH_INFOPATH_INFOPATH_TRANSLATEDSCRIPT_NAMEREQUEST_URIPHP_SELF

相应地调整您的会话重定向。

于 2017-10-17T23:34:24.203 回答