プロが教えるわが家の防犯対策術!

<?php
if($_COOKIE['page']== ''){
setcookie('page','1', (time()+1800),'/','domainsample.com','true');
echo '追加完了';
}else{
echo $_COOKIE['page'];
}
?>
というphpファイルを作ってchromeで読み込むのですが何度再読み込みしても「追加完了」が表示され、一度も「1」が表示されません。
chromeのcookieの設定は「シークレットモードでサードパーティCookieをブロックする」になっています。
また、「サードパーティのCookieを許可」に変更して試してみたのですが、それでも「追加完了」としか表示されませんでした。
原因の調べ方、または解決策のご教示お願いします。

A 回答 (2件)

ブラウザ付属の開発ツールで保存されたクッキー値を確認しましょう


https://developer.chrome.com/docs/devtools/appli …

保存されていないなら原因は以下のいずれかです

案1.
setcookie より前に echo や print_r や var_dump 等の出力をしないこと
していたら HTTP の制約上 setcookie は無効

案2.
php ファイルの一行目一文字目が <?php で始まること
空白や HTML から始まっていると echo 出力と同様と見なされる

案3.
引数 path と domain と secure が実際の URL とあっていること
でなければ不正と見なされてブラウザに弾かれる
これらの引数は特に必要が無ければ省略してしまうのがお勧めです
    • good
    • 0
この回答へのお礼

ありがとうございます。
無事解決しました。

お礼日時:2023/08/03 06:06

第6引数の 'true' は書き方が間違っていますが、結果的に true と同じなので、HTTPS 接続の場合にのみクッキーが送信されます。



https://www.php.net/manual/ja/function.setcookie
    • good
    • 0
この回答へのお礼

「' '」が余計でしたね。ありがとうございます。

お礼日時:2023/08/02 17:02

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

このQ&Aを見た人はこんなQ&Aも見ています