我有一个记录用户访问的应用程序。这些访问都不是直接访问的,100% 这些访问都是从其他网站引用的。
我正在将 $_SERVER['HTTP_REFERER']
传递到数据库。大约 35% 的记录主菜通过引用者,其余为空白。
这有什么原因吗?
最佳答案
HTTP_REFERER
可能为空的原因有多种。
- 你必须明白它是浏览器给出的环境变量。这意味着用户可以删除它,甚至可以更改它,如果他们愿意的话。
- 通过书签、历史记录或手动输入链接访问链接的用户没有引用来源。
- 众所周知,IE 会在与 javascript 相关的情况下删除引用站点。例如
window.open
、window.location
甚至在 anchor 或元刷新
中设置target="_blank"
. - 点击聊天应用程序、PDF/Word/Excel 文档中的嵌入链接也不会设置引荐来源网址。
- 在其他语言中使用 AJAX、
file_get_contents
、fopen
和其他类似函数可能不会设置引用请求。 - cURL、fsockopen、具有类似浏览器组件的应用程序可能不会设置引荐来源网址。
可能有更多情况会发生这种情况,如果我能想到任何看起来合理的事情,我会更新。
关于php - HTTP Referer 并不总是被传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5643773/