cart.php
、checkout1.php
、 、 の4 つのページがcheckout2.php
ありcheckout3.php
ます。それらの機能の概要は次のとおりです。
cart.php //display items and quantities in cart with option for coupon code
checkout1.php //input of user address
checkout2.php //order summary
checkout3.php //order placed into SQL
物は 経由$_SESSION
でカートに保管されますが、各ページ間で$_POST
情報を次から次へと移動するために使用しています。私の懸念は、たとえば、ユーザーがwww.site.com/checkout2.php
アドレスバーから移動しただけで、空のページが表示されるためです (ただし、引き続きアクセスしてcheckout3.php
SQL スペースを無駄にすることができます)。index.php
カートが空の場合にリダイレクトする各ページで(たとえばcheckout2.php
、空のカートのアドレスバーに入力すると、続行できるコードが表示されません)、コンテンツがある$_SESSION
場合ではなく$_POST
、ユーザーが物事を台無しにするのを防ぐ方法がわかりません。
のようなものを使用するかもしれないと思いisset()
ましたが、(疑似コード) の行に沿って何かをしたいと思います:
//on checkout2.php
if (previouspage != "./checkout1.php") {
echo "There was an error.";
} else {
//display correct page
}
それらの線に沿って存在する$_SERVER['HTTP-REFERER']
か何かがあることは知っていますが、すべてのブラウザーがこれをサポートしているわけではなく、参照ページの簡潔な場所を提供していないことを理解しています (たとえば、ユーザーがwww.site.com
vs.から来たと言うでしょうwww.site.com/checkout1.php
) 。