我不是在谈论用户是否曾经访问过该网站,但是一般而言,当用户(不管他们之前访问过该网站)没有登录时,是否刚刚访问过您网站的主页?我认为它必须与会话做些什么,但我还没有弄明白。在PHP中,如何检查用户是否刚刚访问过网站的主页/索引页?
回答
你可以用$_SERVER['HTTP_REFERER']
这样做,它将返回访问的最后一页的地址。你不能依赖于这个重要的东西,因为这个变量可以被改变,并且可能不会被用户代理设置。
从PHP文档:
的页面(如果有的话),其被称为用户代理到 网页的地址。这由用户代理设置。并非所有用户代理都会设置此项,有些用户代理可以将HTTP_REFERER修改为 功能。总之,它不能真正被信任。
你也可以使用一个Cookie或会话变量,并设置页面访问是这样的:
// by file
setcookie('last_page', $_SERVER['PHP_SELF']);
// by uri
setcookie('last_page', $_SERVER['REQUEST_URI']);
,并检查:
// homepage
$home = 'home';
// check
if ($_COOKIE['last_page'] == $home) {}
参考
谢谢,这是我一直在寻找的。 – dave 2012-02-13 19:05:24
请确保并在该服务器变量上执行htmlspecialchars(),因为正如您所说,它可能很容易被欺骗。 – 2012-02-13 18:41:27
因为用户可以操纵他们从之前来的页面,最好的方法是什么? – dave 2012-02-13 18:42:13
没有更好的办法。随着越来越多的网站使用SSL(他们应该这样做),这变成了一个更大的问题。 – earthmeLon 2013-09-17 07:48:58
您可以在进入索引页面时设置带有时间戳的cookie。
如果你想要一个绝对的方式(假设用户启用了cookie),开始一个会话并分配一个像$_SESSION['ref'] = $_SERVER['PHP_SELF']
这样的变量,并检查用户访问的后续页面上的主页网址。
- 1. 不能在我刚刚创造了这个网页,网页
- 2. 如何检查刚刚Google用户在Firebase中第一次登录的用户
- 3. iFrame - 如何加载用户刚刚来的页面?
- 4. MVC - 检查用户访问的网页是否已经登录到网站
- 5. Cordova - 检查应用程序是否刚刚启动
- 6. 刚刚启动的网站,Internet Explorer中的问题
- 7. Django - 如何检查用户是否每天访问该网站
- 8. 如何使索引文件在Wordpress网站的主页/首页
- 9. 如何检测设备是否刚刚重新启动?
- 10. 检查客户端是否使用urllib2来访问php页面
- 11. 角js网站刚刚停止工作
- 12. 如何在用户刚刚登录时弹出通知范围(但不只是刷新到主页)?
- 13. 如何确保用户刚刚登录?
- 14. 如何检索刚加载的页面的文件名?
- 15. 刚刚添加的jQuery访问DOM
- 16. 为什么我的页脚中的CSS边界推页面刚刚超过100%
- 17. 如何检索刚刚使用嵌套方法创建的帐户ID?
- 18. 如何检查部署在IIS 7.5中的网站是否被用户访问?
- 19. 用户刚刚在Rails Devise中确认
- 20. 检查当前页面是否是索引中的索引
- 21. JS如何检查网页是否已被添加为主页?
- 22. 继承刚刚从母版页
- 23. 如何检查这是否是Django中的索引页?
- 24. 检查网页是否可以通过php访问并用ajax刷新
- 25. SQL-Server常见问题 - 检索刚刚插入的ID
- 26. 如何检查用户是否是我网站上的Facebook页面的粉丝?
- 27. 在动态数据自定义页面中,如何检索刚刚更新的对象?
- 28. 如何检查网站的所有非索引页面?
- 29. Swift - 检查网站是否访问
- 30. 存储过程,访问刚刚插入的数据
您可以随时使用cookies,但它们无法解除。 – yasar 2012-02-13 18:42:20