检查非记录访问者唯一性的简单方法

时间:2012-12-09 11:50:07

标签: php unique visitors

有没有办法知道,当用户访问我的网站时,他是否已经来过,而无需用户登录? 我不需要它非常准确,但要在大多数情况下易于实现和工作。 我想过使用ip地址+ useragent组合。你觉得怎么样?

3 个答案:

答案 0 :(得分:4)

当然,这就是cookie的用途。 Cookie独立于身份验证。只需在首次访问您的网页时存储Cookie。每当请求附带已有的cookie时,您可以确定这不是第一次访问。

但请注意,客户可以删除或拒绝cookie。此外,许多客户自动将cookie视为会话cookie,因此在浏览器关闭时会自动删除cookie。

答案 1 :(得分:1)

为每个用户访问您的网站设置一个cookie,如果客户端有该cookie,则意味着他已经访问过您的网站,否则他没有或者也可以通过IP检查

使用Cookie的快速脚本:

if(isset($_COOKIE["user_visited"]))
{
    //He has already visited you.
}else{
    //Set a new cookie.
    setcookie("user_visited","user");
}

IP方法

//Need to create a user_ip table for it and store everybodies ip(s) in it.
$user_ip    =   $_SERVER["REMOTE_ADDR"];
if(isset($user_ip)){
    $query  =   mysql_query("SELECT * FROM `user_ip` WHERE `ip`='$user_ip'");
    $count  =   mysql_num_rows($query);
    if($count > 0){
        //User already visited you
    }else{
        //He hasn't visited you.
        //Save his IP to know if he visit again.
        $query("INSERT INTO `user_ip` VALUES('$user_ip')");
    }
}

答案 2 :(得分:1)

最简单的方法是使用cookie。只需像这样添加cookie:

if ( !isset( $_COOKIE['visited'] ) {
    // user is newbie
    setcookie("visited", '1', time() + 365 * 3600); // set cookie for 1 year
} else {
    // user has already visited your site
}