ブラウザの「←」ボタン対策

PHP画面遷移でセッションでデータをやりとりしている関係上、
ブラウザの←ボタンで遷移されると、画面のセッション情報が正しく受け渡しできずに
エラーで表示される事がある
(特に異なった情報系の画面をつかった遷移の場合)

対策としては、ネット上には、ジャバスクリプトを使った方法がいくつかアップされて
いる。方法はブラウザに記録されている履歴を偽造するやりかたである。

試して見たが、どうもうまくいかない時がある

対策として、
 セッションに持っている階層構造で正常な画面遷移かどうか判断する方法で対応した

・メニューですべてのセッションをクリア menu.php 

$g_url=”‘”.$sestab.”‘”;
unset($_SESSION[$g_url]);
$_SESSION[$g_url]=array();

・各VIEWで階層を確認 階層名がないなら、menuへ遷移
 その階層以降に階層が登録されていたら、menuまたは第1階層に遷移
****-view
$ui=selectURL($sestab,’oudata2′);
$g_url=”‘”.$sestab.”‘”;
//戻るボタン対策
if($ui==-1)
{
header(‘Location:routes.php?get=menu_view’.’&sestab=’.$sestab);
exit();
}else
{
//データが最後の$_SESSION[$g_url]でない 現在画面だから最後のはず
if($ui !=(count($_SESSION[$g_url])- 1))
{
header(‘Location:routes.php?get=menu_view’.’&sestab=’.$sestab);
exit();
}
}

横飛び遷移がない場合は第1階層に遷移、可能性がある場合はmenuに


カテゴリー php