PHPでセッションを使用しているシステムで更新ボタン連打等でセッション変数が消える

「PHPでセッションを使用しているシステムで更新ボタン連打等でセッション変数が消える」

PHPでセッションを使用しているシステムで更新ボタンを連打したりするとセッション変数が消える

回答

PHPでセッションを使用しているサイトはセッションを開始後、
セッションハイジャック対策としてセッションIDの再生成(session_regenerate_id)を行うことがあるが、

<?php
session_start();
session_regenerate_id(true); //セッションIDの再生成
?>

PHPはセッションIDの再生成に時間がかかるみたいで、更新ボタンを連打等されるとセッションIDの生成が追い付かずに、セッション変数が消えてしまう場合があるらしい。

よって、
session_regenerate_id(true);
はログイン後だけに入れ、それ以外では入れないような対策を行ったほうがよい。

但しセッションハイジャックには弱くなるので自己責任でお願いします。

ソース


<?php
session_start();
//session_regenerate_id(true); //セッションIDの再生成は控えめに
?>