【发布时间】:2012-09-24 09:13:18
【问题描述】:
我能否检测到网络浏览器是否正在从服务器请求某个图像? 我想检查用户是否下载了图像,或者它是否已经从浏览器缓存。
主要思想:
我正在计算每个个人资料页面的唯一身份访问者。我现在使用IPs 和Cookies,但也想添加这个。 IP 可以轻松更改,Cookie 可以被阻止/删除。
我的想法是像flash cookie 一样使用这些信息。图像的大小为1px x 1px,并且对用户不可见。我根本没有使用 ActionScript 和 Flash 的经验,所以我不能使用 flash cookie 并想尝试一下。
编辑:
正如我从斯文的回答中了解到的那样,也许我无法解释我需要什么。我的问题和斯文的回答一样。 如何 wait for the request to appear on the server?我希望浏览器缓存图像,因此只有当用户是唯一访问者时才会下载它,即他是第一次查看该页面。
我想获取此信息并检查图像是否被请求(即它被缓存)。类似的东西:
$requested_files = $_SERVER['REQUESTS']; // Or something similar, this is the question.
$file_name = $profile_page_owner_id.'.png'; // For example.
if(in_array($file_name, $requested_files)) {
// File is requested, so it is not cached. This is an unique visitor.
// Of course except this I will continue to check IP and Cookie.
// This will be the 3rd check.
} else {
// File is not requested, so it is already cached.
// Page is viewed before, this is not an unique visitor.
}
【问题讨论】:
-
这是个坏主意。人们不能拥有 flash、默认阻止 flash 或删除他们的 flash cookie,因此您不会更安全。浏览器的 IP + 用户代理是最安全的方法之一。想一想,如果用户更改了他们的 IP(仅供参考,这并不容易),那么这是否真的很重要?
-
Flash cookie 当然可以删除。但与 HTTP cookie 相比,这种情况很少发生。正如我所说,我不能使用 Flash cookie,因为我根本没有足够的关于 Flash 和 ActionScript 的知识。谷歌搜索了一些
PHP Flash cookie tutorials,但找不到有用的东西。唯一身份访问非常重要,因为我们希望向他们的个人资料页面的唯一访问次数最多的用户支付奖金,因此这不仅仅是一个信息性统计数据。最后,您能否为我提供一些 IP+User Agent 的示例,因为我无法找到如何在这种情况下有效地使用 User Agent。