【问题标题】:Wrong url in SESSION variable when browser fails to load image url当浏览器无法加载图像 url 时,SESSION 变量中的 url 错误
【发布时间】:2014-01-25 10:42:53
【问题描述】:

我有一个前端控制器,它将上一个页面的 URL 存储在一个 $previousPageUrl 变量中,然后将当前页面 URL 存储在一个 $_SESSION['url'] 变量中:

session_start(); // starts the session

if (isset($_SESSION['url'])) {
    $previousPageUrl = $_SESSION['url'];
}

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

这样,我应该可以随时重定向到上一页的网址。

问题是这个$_SESSION['url'] 变量在某个时刻发生了不可思议的变化,返回了一个.gif 图像的url。

我注意到这个网址是错误的。当我在模板中更改它时,这种奇怪的行为突然恢复正常,一切正常。

有人可以解释一下发生了什么吗?错误的图片 url 如何影响会话变量?

【问题讨论】:

  • 你不能只使用history.back()$_SERVER['HTTP_REFERER']吗?
  • @putvande $_SERVER['HTTP_REFERER'] 安全吗?我应该以某种方式验证它吗? (无论如何,我的问题是另一个论点):)

标签: php session url redirect


【解决方案1】:

根据给出的信息,我只能假设......

我假设您正在使用带有重写规则的 .htaccess,它将所有内容重写到您的前端控制器?

如果是这样: 在您的 html 中,您有一个图像,这会创建一个请求,但如果图像的 url 无效,则如果设置了会话变量,则重写规则会将其重写到您的前端控制器。 因此,无效的图像 url 将在会话中。

【讨论】:

  • 我从来没有编辑过我的 .htaccess,就像我在系统上安装了 php 环境一样。默认的重写规则会干扰会话变量吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 1970-01-01
  • 2013-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多