訪問回数ごとに違うページを表示させるには
クッキーを利用して、訪問回数ごとに違うページを表示(ランダムではなく順番に表示)させ、最後のページまで表示させたらまた最初のページから順番に表示させる、この処理をループさせたいのですが、書き方がわかりません。
例えば、表示させたいページがA~C.htmlの3ファイルだった場合、一回目の訪問はA.htmlを表示、2回目の訪問はB.htmlを表示、3回目の訪問はC.htmlの表示、4回目の訪問はまた最初に戻ってA.htmlを表示、5回目の訪問はB.htmlを表示、6回目の訪問はC.htmlを表示、7回目の訪問はまた最初に戻ってA.html・・・というような処理をループさせたいのです。
下記ソースを応用したいのですが、どの部分をどう変更したらよいのか、どなたか教えて頂けませんか?よろしくお願いいたします。
このソースは、訪問回数によってテキストが表示されるというものですが、今回はテキストを表示させるのではなく訪問回数によって用意したページに直接飛ばしたいのです。
<?php header("Content-Type:text/html;charset=Shift_JIS"); ?>
<?php
$cookie = "repeaters"; // Cookieの名前
$period = time() + 365*24*3600; // Cookieの有効期限(サンプルは1年)
if(isset($HTTP_COOKIE_VARS[$cookie])) {
$num = (int)$HTTP_COOKIE_VARS[$cookie];
$num++;
}
else $num = 1;
setcookie($cookie, $num, $period);
?>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<?php
if($num == 1) echo "初めての訪問ありがとうございます";
else echo "今回で".$num."回目の訪問になります";
?>
</BODY>
</HTML>
お礼
今なんとなくやってみたら出来ました(∩´∀`)∩ とりあえずindexページのスクリプトに //初回アクセスのみWELCOME表示// var $my_window = "toppage"; // 任意のウィンドウ名を指定 if ( window.name.indexOf( $my_window )!=-1 ) { //任意のウインドウ名かチェック } else { window.name = $my_window; // ウィンドウ名を任意に名付ける alert( "ようこそ!" ); // 初回訪問時の処理 } //リロードでWELCOME表示// function reloaded () { return window.name == window.location.href ? true : false; } if (reloaded()) { window.name = $my_window; // ウィンドウ名を任意に名付ける alert( "ようこそ!" ); // 初回訪問時の処理 } window.name = window.location.href; んで、コンテンツページのスクリプトに var $my_window = "toppage"; // 任意のウィンドウ名を指定 if ( window.name.indexOf( $my_window )!=-1 ) { //任意のウインドウ名かチェック } else { window.name = $my_window; // ウィンドウ名を任意に名付ける } を組み込むことでなんとか希望の動きが出来ました。 半分くらい理解しきれてないんでなんか余計なコードがあるかもしれませんが…とりあえず出来たので満足です。 ありがとうございました!
補足
回答ありがとうございます。 その後、色々と検索した結果。 http://web.contempo.jp/weblog/tips/p3147 このページに行き当たりましてこれを採用することにしました。 リロードの処理は、コードがややこしくなりそうなのでとりあえずやめました。 ですが、 検索サービスからコンテンツページを最初にみた時、indexに戻るとWelcome画面が出てきてしまうのがやや気になりますね。その場合はいらないというか… やっぱ、別途Welcomeページを作ってそこからメインページに飛ぶという単純な方法がいいのか悩んでます。。。