0

有没有办法知道,当用户访问我的网站时,如果他已经来了,而无需用户登录?我不需要它非常准确,但要在大多数情况下易于实现和工作。我想到了使用 IP 地址+用户代理组合。你怎么看待这件事 ?

4

3 回答 3

4

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

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

于 2012-12-09T11:52:20.397 回答
1

在每个用户访问您的网站时设置一个 cookie,如果客户有该 cookie,则表示他已经访问过您的网站,否则他没有,或者也可以通过 IP 进行检查

使用 Cookie 的快速脚本:

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

知识产权法

//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')");
    }
}
于 2012-12-09T11:52:58.820 回答
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
}
于 2012-12-09T11:54:53.970 回答