最近の、別の記事を探す
【タイトル】
PHP7.2で動いていたLOGIN処理を5.5で動かすとセッション変数値が消え、不明な動作
【キーワード】
セッション変数値,消える,session_write_close,LOGIN処理,Location,PHP7.2,PHP5.5
【内容】
7.2で概ね確認の済んだ、いーじー・フリーメール本物を5.5.3でテストしたらLOGIN処理が不明な動作をする。Locationで飛ばした先でvar_dump($_SESSION)を実行するとarray(0){}になる。パスワード確認後にsession_regenerate_idした結果のセッションIDは渡っていたが、session_regenerate_id後に$_SESSION['login'] = "1";などセッション変数にセットした値が消えている。ファイルを見ると0バイトでした。
session_write_close();をLocationで飛ばす直前に入れて対策したと言う記事は早々と見つけていたが、マニュアルの記述に、セッションを終了すると言う文言があり、遷移先のsession_startが、再開でなく、開始(セッションを引き継がない)になるのかと思い、一先ず保留して、他の調査に。
5.5,7.2のphpinfoを比較したり、色々探しても、原因が分からず、session_write_close();を試すことに。急がば回れで
関数の戻り値をチェックするコードでテストしたら、falseが戻りdieします。それをまた検索しても原因不明。
0からやり直すつもりで必要最低限の簡単なTP群を作りました。
今度は関数の戻り値もチェックしていません。最初はsession_write_close();なしで、やはりセッション変数値が消えています。
session_write_close();を追加すると、やっとセッション変数値が引き継げました。そのコードで7.2でチェックしても問題なし。ちなみにsession_write_close();の戻り値、7.2ではtrueで戻っています。
これは往生しました。
ブラウジングに関する話なので、雑談部屋でなく、失敗から学ぶPHPページに入れておきます。
【
IE9 】
Windows7のTipsですが、IE9に分類しておきます。
Microsoft-
ブラウザ上のリンク先を新規にタブで開く
私は今まで、テキストリンクを別タブで開くときは右クリックから行っていましたが、この方法が早いです。
後、私はお気に入りバーを好んで使っていますが、その中のタブを出すのに、新規タブをクリックしてから、お気に入りバーをクリックしていましたが、お気に入りバーからドラッグする事で簡単に別タブで開くことができるようになりました。