0

ユーザーを別のページにリダイレクトする前に、ページのヒット数をカウントするために使用しようとしているこのコードがあります。

ログインしていないユーザーは、サインアップページにリダイレクトされる前に profile.php に 6 回しかアクセスできないという考えですが、ログインしているユーザーに対してもこれを行っており、ログインしているユーザーが profile.php にアクセスできるようにしたいと考えています。何度でも。

誰かが私が間違っているところを教えてください。

たとえば、セッションが null の場合はページへのアクセスを 6 回に制限しますが、セッション = ログイン中の場合は無制限のアクセスを許可します。

<?
!session_id() ? session_start() : null;

if(!isset($_SESSION['logged_in']) && empty($_SESSION['logged_in'])){
    verify_profile_visit_limit();
}

function verify_profile_visit_limit(){
    $free_profiles = array(99999,99998,99997,99996,99995,99994,99993);

    if(in_array($_GET["id"], $free_profiles)) return;

    if(! isset($_SESSION["page_access_count"])){
        $_SESSION["page_access_count"] = 1;
    }

    $_SESSION["page_access_count"]++;

    if($_SESSION["page_access_count"] > 6){
        header("Location: limit.php");
        exit();
    }
}

?>
4

1 に答える 1

2

問題はここにあります:

if(!isset($_SESSION['logged_in']) && empty($_SESSION['logged_in']))

$_SESSION['logged_in']設定して空にすることはできませORここで演算子を使用する必要があります。

于 2013-01-22T14:44:27.957 に答える