1

ユーザーがページに5回以上アクセスした場合、ユーザーをリダイレクトしようとしています。したがって、基本的な考え方は、ユーザーが私のサイトにログインしておらず、ユーザープロファイル(profile.php)を閲覧している場合、これはCookieセッションのヒット数をカウントし、サインアップなどを行うためにページにリダイレクトします。 。

私はphpを初めて使用するので、どこから始めればよいのかわかりません。誰か見せてくれませんか。

4

3 に答える 3

2

基本的に、サーバー側または Cookie のセッション変数にカウンターを設定できるはずです。プロフィールページにアクセスするたびに、そのカウンターを増やします。そのカウンターがそれより大きい場合5は、phpheader関数を使用してユーザーをサインアップ ページにリダイレクトします。セッション変数を使用してこれを実現するための簡単なコードヒントを次に示します。

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

$_SESSION["ProfileVisitCount"]++;

if($_SESSION["ProfileVisitCount"] > 5){
    header("Location: http://domain.com/signup");
    exit();
}

また、これらのコードを使用する前に、必ず php セッションを開始してくださいsession_start()

次のような Cookie を使用して、同じことを実現できます。

if(! isset($_COOKIE["ProfileVisitCount"])){
    setcookie("ProfileVisitCount", "1", time()+3600);
}

if($_COOKIE["ProfileVisitCount"] > 5){
    header("Location: http://domain.com/signup");
    exit();
}
else {
    setcookie("ProfileVisitCount", ($_COOKIE["ProfileVisitCount"] + 1), time()+3600);
}

参考文献

于 2012-12-24T03:28:41.107 に答える
2

これを PHP で実装するのは非常に簡単です。カウント値でセッションを設定し、アクセスごとに読み取るだけです。その後、カウントが5以上の場合にリダイレクトできます。以下はサンプルコードです

!セッションID() ?session_start() : null;
if(!isset($_SESSION['page_access_count'])){
    $_SESSION['page_access_count'] = 1;
}elseif($_SESSION['page_access_count'] >= 5){
    // 登録ページにリダイレクト
    header('Location:/signup.php');
    出口;
}

    // ページ アクセス セッションの値を増やします
    $_SESSION['page_access_count']++;

    ...
于 2012-12-24T03:29:02.480 に答える
0

クッキーを使用します。PHPで行う方法は次のとおりです。

<?php
if (!isset($_COOKIE["cookie1"]))
{
  setcookie(
  "cookie1",
  "1",
  time() + (20 * 365 * 24 * 60 * 60),
  '/',
  '.example.com'
);
}
else{
  setcookie(
  "cookie2",
  "2",
  time() + (20 * 365 * 24 * 60 * 60),
  '/',
  '.example.com'
);
else{
  setcookie(
  "cookie3",
  "3",
  time() + (20 * 365 * 24 * 60 * 60),
  '/',
  '.example.com'
);
}
else{
  setcookie(
  "cookie4",
  "4",
  time() + (20 * 365 * 24 * 60 * 60),
  '/',
  '.example.com'
);
}
else{
  setcookie(
  "cookie5",
  "5",
  time() + (20 * 365 * 24 * 60 * 60),
  '/',
  '.example.com'
);
}
else
{
header("Location: http://domain.com/signup");
}
}
?>

.example.com をドメイン名に置き換えてください。そして、「。」を保持します。「www」の代わりに。「www」を含むドメイン名または含まないドメイン名で実行したときに動作させたい場合。

機能するかどうか教えてください...いつでも変更できます。

于 2012-12-24T03:30:42.290 に答える