2012-05-14 5 views
0

私はショッピングカートを扱うwordpressプラグインに取り組んでいます。私は2ページ、チェックアウトとありがとうページがあります。カートに入れる商品は、https://mysite.com/checkout/?action=add&subscription=23のようなリンクで追加されます。チェックアウトページのカートにアイテムを追加するためにセッションを使用しています。要求がブラウザの戻るボタンから来ているかどうかをPHPが検出する方法はありますか?

私は三つの項目を追加した場合とし、コメントを追加しました: https://mysite.com/checkout/?action=add&subscription=1 https://mysite.com/checkout/?action=add &サブスクリプション= 2 https://mysite.com/checkout/?action=add&subscription=3(ブラウザのアドレスバーの最後のリンク)

すると、ユーザのチェックアウトを上チェックアウトのページが表示されたら、ユーザーはリダイレクトされてありがとうございます。私はブラウザのバックボタンに問題があります。ユーザーがバックボタンを押してくれてありがとうございました。彼はもう一度チェックアウトページにリダイレクトされました。ブラウザのアドレスバーの最後のリンク。

どうすればブラウザに最後のアイテムを再度追加するのを防ぐことができますか? リクエストがブラウザの戻るボタンから来ているかどうかをPHPが検出する方法はありますか?セッションを使って処理する方法があると思いますか?

これを達成する他の適切な方法がある場合は、私に案内してください。おかげ

+1

カートにアイテムを追加するなど、サーバー上でアクションを実行するには、POSTリクエストを使用する必要があります。これにより、URLによって変更が行われることはなく、要求を再送信しようとするとユーザーに警告が表示されるため、問題が根絶されます。 POST/REDIRECT/GETはこれを行う方法です。 – DaveRandom

答えて

3

ありがとうございました。

0

することができますユーザー $_SERVER['HTTP_REFERER']あなたの親ページを参照してください、そして、ユーザーから来ているかどうかを検出することを処理するための最良の方法は、POST/REDIRECT/GETパターンを使用することですページ

+0

$ _SERVER ['HTTP_REFERER']はブラウザの戻るボタンでは機能しません。 –

2

Post Redirect Getデザインパターンを使用してください。

つまり、処理するスクリプトは結果を表示するスクリプトではありません。

関連する問題