0

ユーザーが私の Web サイトにアクセスしたときに、ユーザーがログインしなくても、既にアクセスしているかどうかを知る方法はありますか? 非常に正確である必要はありませんが、実装が簡単で、ほとんどの場合に機能する必要があります。IPアドレスとユーザーエージェントの組み合わせを使用することを考えました。あなたはそれについてどう思いますか ?

4

3 に答える 3

4

確かに、これがクッキーの目的です。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");
}

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')");
    }
}
于 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 に答える