我在页面中集成了简单的访问者计数器脚本(php)(我知道它非常不准确和糟糕,但此时只用于测试):
<?php
$file = "counts.html";
//if cookie isn't already set,then increase counts by one + save ip, and set a cookie to pc...
$cookie_namee='mycounterr-456';
if (!isset($_COOKIE[$cookie_namee])) {
file_put_contents($file, ( !file_exists($file) ? 0: (file_get_contents($file)+1) ) );
setcookie($cookie_namee, "Checked", time()+99999, '/');
}
?>
有没有办法获得访客的IP? (echo $ GET_REMOTE_IP;不起作用)。
答案 0 :(得分:3)
您通常可以通过$_SERVER['REMOTE_ADDR']
变量获取IP地址。
答案 1 :(得分:3)
因为我没有找到令人满意的&#34;足够简单&#34;解决方案,我想出了自己的。创建一个名为ip.txt
的空文件,并在代码中的某处使用:
$ip_all = file("ip.txt");
$ip_cur = $_SERVER['REMOTE_ADDR']."\n";
if (!in_array($ip_cur, $ip_all)) {
$ip_all[] = $ip_cur;
file_put_contents("ip.txt", implode($ip_all));
}
echo "visitors: " . count($ip_all);
请注意,此文件会随着时间的推移而变得有些大,具体取决于您获得的访问者数量,因为条目不会过期并像Cookie一样被删除。但正如已经提到的,我希望它尽可能简单并且不关心它。此外,我不想依赖cookie,因为我怀疑网络爬虫和其他机器人会将它们发回去。
答案 2 :(得分:1)
简单:
<?php
$cookie_name = 'counter';
$file = 'count.txt';
if (!isset($_COOKIE[$cookie_name])) {
$count = strval(file_get_contents($file));
file_put_contents($file, $count + 1);
setcookie($cookie_name, "Checked", time() + 111400);
}
?>
答案 3 :(得分:1)
嗨,这就是我用来注册访客ip。
function get_IP() {
// ADRES IP
if (getenv('HTTP_CLIENT_IP')) $ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR')) $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED')) $ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR')) $ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED')) $ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR')) $ipaddress = getenv('REMOTE_ADDR');
else $ipaddress = 'UNKNOWN';
//
return $ipaddress;
}
答案 4 :(得分:0)
您可以通过使用w +打开文件来保存一些代码,这将自动为您创建。
<?php
// Inits
$file = "/tmp/counts.html";
$cookie_namee='mycounterr-456';
// File, created if !exists
$fh = fopen($file, 'w+');
// Get the count, 0 if the file is empty or just created
$count = (int)fgets($fh);
//if cookie isn't already set,then increase counts
//by one + save ip, and set a cookie to pc...
if (!isset($_COOKIE[$cookie_namee])) {
// Increment and write the new count
fwrite($fh, ++$count);
setcookie($cookie_namee, "Checked", time() + 111400);
}
fclose($fh);
如果您想要一种非常简单的方法来通过IP或其他方式强制执行计数,您必须查看Redis。
答案 5 :(得分:-1)
您可以尝试使用simPHP:github.com/ajay-gandhi/simphp
答案 6 :(得分:-3)
如果您希望它在您的网页上显示访问者 把它放在你的代码下面。
<?php
include ("counts.html")
?>