この人頭いいなと思ったエピソード

PHPの有料講座で課題が出ましたが、
解答がないのでここで質問させてください。
PHPでCookieを使って、下記のような訪問回数を表示するカウンターを作りたいです。
よろしくお願いします。

cookieを使って訪問回数カウンターを作ってみよう
・PHPでCookieを使って、下記のような訪問回数を表示するカウンターを作ってください。

初回訪問時は「ようこそ!初めての訪問ありがとうございます!」と出力
2回目以降の訪問は「こんにちは!あなたの訪問は2回目です!」と出力(数値は訪問毎に増える)
10回訪問したらカウンターをリセットする
クッキーの有効期限は24時間に設定する


ヒント
Cookieの発行にはsetcookie関数を使う
Cookieを受け取るには$_COOKIE変数を使う

自分の書いたコード
<?php

setcookie('username','yamada',time()+60*60*24);
echo $_COOKIE['username'];
echo 'ようこそ!初めての訪問ありがとうございます!';

echo 'こんにちは!あなたの訪問は2回目です!';


?>

このように、もうすでに行き詰っています

A 回答 (3件)

dice_zk1 さん



・・・・・cookieを使って訪問回数カウンターを作ってみよう・・・・・・・

ご参考に↓

<?php
if ( isset($_COOKIE["username"]) ){ //cookieがあるとき
$n = $_COOKIE["username"] +1;
if($n > 10){ $n = 0;} // カウンターをリセット
echo 'こんにちは!あなたの訪問は'.$n.'回目です!';
} else{//初めての訪問
echo 'ようこそ!初めての訪問ありがとうございます!';
$n = 1;
}
setcookie( "username" ,$n,time() + 3600*24);
?>
    • good
    • 0
この回答へのお礼

私の求めている解答を有難うございます。
$n = $_COOKIE["username"] +1;
はおそらく、
$n = $_COOKIE[$n] +1;
が正しいのですね。
{}の一対の関係がよくなかったのか、微妙に上手くいきませんでした。おしいです!

お礼日時:2023/05/27 15:01

>$n = $_COOKIE["username"] +1;


>はおそらく、
>$n = $_COOKIE[$n] +1;
>が正しいのですね。

間違ってるかと。※添付図はNo.2(gura_さん)のをそのまま実行。
「PHPで訪問回数を表示するカウンタを作成」の回答画像3
    • good
    • 1

クッキー処理の定石は


1. クッキーを読み取り値を得る
2. 値を編集する
3. 値をクッキーに書き込み
-- ここまで画面表示は禁止 --
4. 値を元に表示

参考)
https://www.php.net/manual/ja/language.variables …

今回ならば
1. クッキー 'count' を読み取り → $c / 無ければ 0 → $c
2. $c を加算 / 10以上なら1 → $c
3. $c を書き込み → クッキー 'count'
4a. $c が 1 なら "初回" を表示
4b. 上記以外なら "{$c}回" を表示
    • good
    • 0
この回答へのお礼

回答有難うございます。

お礼日時:2023/05/27 19:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報