作成日:2018-02-26, 更新日:2019-08-13
基本
基本、下記のどちらかで分かるはず・・・。
・他のブラウザや端末で確認
・ソースの確認
これでも分からない場合はサーバ側の問題もあったりする。
他のブラウザや端末で確認
特定の人だけダメな時に考えられる理由。
ブラウザの設定
・ブラウザで「拒否」する設定しているかどうか。
・機能拡張(アドオン)が悪さしている可能性もあり。
ソースの確認
有効期限
セッション自体の有効期限の問題。
※「(お試しとして)短い時間に設定していた」とか。
※ブラウザを閉じたときの挙動もチェック
サーバ側(php.ini等)で設定されているかもしれない。
リンク切れ
faviconを含めてリンク切れのファイルがあるとダメらしい。
・favicon
・Javascript
・画像
・CSS(CSSの中身にある各画像やファイルのPATHも確認)
セットしていないだけ
「セッションをセットしたつもり」という可能性。
if文の中でセットしていたけど「else」のほうでセットしていなかった・・・など。
FuelPHPの場合
・cookieが標準。
他のシステムでファイルやDB保存に慣れきっている場合、FuelPHPの「config/sessions.php」を書き換えないことでcookieの容量オーバー。
・「\session::set_flash()」でセットして、次の次のページで取得しようとしている。
※「遷移先が別ページにリダイレクトしている」等
・FuelPHPのバージョンとサーバとの絡み
※FuelPHPの任意のバージョンとXamppの組合せセッションが消えるというバグがあったりする(FuelPHP1.8.0とXamppで消えた)
PHPの場合
セッションスタート(session_start())する前に何かを出力している場合。
・「<?php」の前にHTMLなどを記述している
・「<?php」と「session_start()」の間に「echo」等している
理由は不明
fuelPHPの「〇〇〇_flash()」と「config/routes.php」の「_404_」
理由は分からない。
でも「_404_」をルーティング指定していると「set_flash()」が消える。
欲しければ・・・自前で用意するのが良さげ。
その他
上記をチェックして、お手上げ状態のとき。
サーバ or PCの時計
それぞれの時間に差がありすぎるとダメ。
ファイヤーウォール
詳細は分からない。
「ステートフル・インスペクション」という機能があるそうだ。
コレも調べてみたほうがいいかもしれない。