質問: Webプログラミングの世界では、リロード対策や二重登録対策としてトークンを使った画面遷移が一般的な方法のようですが、今回初めて実装しており意図した遷移になりません。 【やりたいこと】 最終ページでブラウザの戻るをクリックされたら 「セッション(トークン)が無い」 と判断しトップページに戻したいです。 【行っている手順】 1.開始ページを表示。 http://localhost/Starts/ 2.次に確認ページを手入力 ※formアクション無し http://localhost/Tests/ 3.Yahooページが表示されます http://www.yahoo.co.jp/ 【現状】 Yahooページにて戻るボタンクリックすると、 確認ページのdie('topページに戻すよ')が表示されず、 開始ページが表示されてしまいます。 【各ページについて】 ・開始ページ(StartsController)・・・トークン生成 ・確認ページ(TestsController)・・・トークンの確認 ・最終ページ(HogesController)・・・トークン削除 【トークンについて】 まず遷移だけ実装したく、POST・GETは省いてセッションでのみ実装してます。 以下にソースを記載させていただきます。 【開始ページ】 ``` Session->write('token', 'test'); } } ``` 【確認ページ】 ``` Session->check('token')) { //最終ページへ header('Location:../Hoges'); exit(); } else { //これが表示されない die('topページに戻すよ '); } } } ``` 【最終ページ】 ``` Session->destroy(); //Yahooページへ飛ばす header('Location:http://www.yahoo.co.jp/'); exit(); } } ``` 何か勘違いしているでしょうか? どうぞ宜しくお願い致します。
回答: headerで移動しているので、実際のページを表示していません。 ブラウザの戻るは、実際の表示ページに戻るので、最初のページに戻るはずです。 【確認ページ】でいったんHTMLを表示しJavascriptでジャンプすれば、yahooに飛んだあと戻るを押すと、想定通りの動きになると思いますよ。