1

アイテムをカートに追加できるように、入力を非表示にして送信するフォームがあります。

再送信の問題を回避するために(ユーザーがページを更新するか、別のページから押し戻す場合)、次のように実行しています。

  • アイテムページにはフォームがあり、送信します
  • cartAdding.phpは値を受け取り、アイテムをカートに追加します。次にheader、アイテムページにリダイレクトするためにを配置します
include ("../cart/functions.php");
if(isset($_REQUEST['command']) && $_POST['add']=='add' && $_POST['itemId']>0)
{
    if (array_key_exists($pid, $_SESSION['cart']['itemId']))
    { 
    }
    else 
    {
        $pid=$_REQUEST['itemId'];
        addtocart($pid,1);
        $itemAdded = 1;
        $max = 0; 
foreach ($_SESSION['cart'] as $item) 
    { 
        $max = $max + $item['qty']; 
    }
    }
unset($_POST['add']);
header("Location: http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]);
exit();
}

私の質問はについてLocationです。アイテムのURLを保存して、cartAdding.phpでリダイレクトに使用できるようにするにはどうすればよいですか?次のように、フォームと一緒に送信することをお勧めし$_SERVER['PATH_INFO']ますか?

ありがとう!

4

2 に答える 2

2

URLを使用して別の非表示の入力を追加できます。

しかし、アイテムのURLはそのIDから派生したものではありませんか?のようにitemList.php?id=item_id?もしそうなら、あなたはすでにそのID(on $pid = $_REQUEST['itemId'];)を持っているので、あなたはそれにリダイレクトすることができます、

header('Location: http://'.$_SERVER["HTTP_HOST"].'/itemList.php?id='.$pid);
于 2013-03-06T15:25:23.003 に答える
0

このURLやItemIdなどを$_POSTや$_GET、さらには$_SESSION変数で渡すことができます。

于 2013-03-06T15:24:48.037 に答える