$_SERVER['REQUEST_URI'] 存储在 $_SESSION 中时将返回数字而不是 $_GET 值



我在第一页有以下代码:

$_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个小时,没有人能回答我的问题,请帮忙!

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

。但这就是它目前配置的功能

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

检查您的环境

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

相应地调整会话重定向。

相关内容

  • 没有找到相关文章

最新更新