- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:setcookieの位置)
setcookieの位置
このQ&Aのポイント
- setcookie関数を最初に置いた場合、カウントの数字が1のまま増えない現象が発生します。
- セッションのサンプルでは、始まりの行でセッションがセットされ、正常にカウントされます。
- クッキーを最初にセットすると、クッキー自体がセットされずにカウントが1のままになります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#244856
回答No.2
すごく単純な問題ですが… 原則的にPHPコードは上から順番に実行されますよね。 <?php setcookie("ponpon", $kazu); ← この時点では $kazu は未定義です。未定義の変数の値を使おうとすると E_NOTICE レベルのエラーを発生し、NULLが代入されて自動的に初期化されます。まずこのエラーの発生に気付いていない時点でデバッグ作業に難ありなので、php.iniの設定で error_reporting = E_ALL | E_STRICT display_errors = On とし、全てのエラーを表示するようにしてください。そして isset は未定義に加えてNULLという値に対しても同様にFALSEを返すので、ifブロック後半の $kazu = 1; が実行されます。常にこの処理が行われていただけです。
その他の回答 (1)
- やぎ じじい(@yagijijii)
- ベストアンサー率56% (63/112)
回答No.1
第三のパラメータに有効期限を入れてみてください。 例:time()+60*60*24 とか
質問者
お礼
質問内容がうまく伝わらなかったようで すみません。 とにかくありがとうございました。
お礼
お答えありがとうございます。 プログラムは上から処理されていくのですが 空の場合はそのまま下に下って行き 下の部分から自動的に$kazuに値が入ると思っていました。 前は「2K-NT-XP」を使ってPHPを練習していたのですが プログラム自体が古いようで作動しない関数が沢山あるため、 レンタルサーバを使ってPHPの勉強をしています。 レンタルサーバではエラー表示は何も出ないようです。 とにかくありがとうございました。