1

奇妙なことが起こっています。サイトのメイン ランディング ページに移動し、クリックして商品をショッピング カートに追加すると、'cartID' という PHP セッション変数が保存されます。こうすることで、顧客はカートのアイテムを失うことなく、カートにアイテムを追加し続けることができます。

メインのランディング ページをバイパスして (ブックマークや Google 検索のように) 製品ページに直接移動した場合、そのアイテムをショッピング カートに追加します。ただし、顧客がカート ページを離れると、セッション変数「cartID」が作成されます。 、「cartID」変数が失われ、カートが空になります。

カートにアイテムを追加する両方の方法は、.htaccess で rewriteRule を使用します。

RewriteRule ^g(. )c(. )s(. )ss(. )p(. )/(. ).htm$ onlineOrder.php?grpid=$1&catSel=$2&subCat1ID=$3&subCat2ID=$4&prodSel=$5&$6 【QSA】

これは問題なく動作しますが、顧客が最初にメインのランディング ページに移動しなかった場合、ショッピング カートにアイテムが追加されたときに作成された「cartID」セッション変数は、カート ページを離れるときに失われます。製品ページへの両方のリンクはまったく同じですが.

製品ページに直接アクセスすると機能しない理由について何か考えはありますか?

4

1 に答える 1

1

最も可能性の高いシナリオは、1 つ以上のページsession_start();が呼び出される前に出力を送信している可能性があることです。

イニシャルの前に行、空白、またはその他のものがないこと、および呼び出される前に<?php何も出力されていないことを確認してください(これには、出力を生成する行が含まれます)。基本的に、セッションの開始は、最初ではないにしても、スクリプトが最初に行うことの 1 つであるべきです。 session_start();header();

于 2012-10-23T06:21:11.947 に答える