2

表示された商品リストからユーザーがカートに追加/編集できるショップサイトがあります。かなり単純なもの。[カートに追加]ボタン(これはクライアントの要求による)で、確認ボックスがポップアップし、ユーザーがカートにさらに追加するかどうかを尋ねます。そうでない場合は、カートページに移動してチェックアウトします。さらに追加したい場合は、同じページを更新するだけです。

私が抱えている問題は、確認ボックスで何かをクリックした後、そのページが更新されると、どういうわけか、製品を再度表示するために製品をクエリするSELECTクエリ(ちょうど実行した正確なクエリ)が壊れます...IE6でのみです。

クエリ自体は次のようになります。

  $query_Recordset1 = sprintf("SELECT ProductID, Lang, MasterPack, ProductCategory, ProductSubCategory, Restricted1, ProductCode, ProductDesc, UnitsInStock, Image, Chargeable, UnitPrice, PDFName FROM tblInventory WHERE Client='Tenneco' AND InventoryGroup IN($invGroupStr) ORDER BY ProductCategory, ProductSubCategory, ProductDesc ASC LIMIT %s,50", GetSQLValueString($pg, "int")); 

$invGroupStr) AND ProductCategory='%s'ブラケットのあたりで壊れます。$invGroupが何かに設定されていると確信しています。

sprintfの後のクエリは次のとおりです。

SELECT ProductID, Lang, MasterPack, ProductCategory, ProductSubCategory, 
       Restricted1, ProductCode, ProductDesc, UnitsInStock, Image, 
       Chargeable, UnitPrice, PDFName 
FROM tblInventory 
WHERE 
    Client='Tenneco' AND InventoryGroup IN('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', '') 
ORDER BY ProductCategory, ProductSubCategory, ProductDesc ASC 
LIMIT 0,50

私が調べなければならない明らかなことはありますか?このサイトは元々PHP4で作成されており、一般的にコーディングが非常に不十分です(私は、すでに存在するものから引き継ぐように任命されています)。

4

2 に答える 2

5

クエリはブラウザでは実行されません。クエリはクライアントのブラウザではなくサーバーで実行されるため、IEがMySQLクエリの失敗の原因になることは不可能です。

以下を使用して、壊れたクエリに関連するエラーを出力してみてくださいmysql_error()

$result = mysql_query( $brokenQuery ) or die( mysql_error() );

次に、そこから逆方向に作業します。

于 2012-05-24T21:35:31.987 に答える
0

ばかげたエラーであることが判明しました。「カートに追加」がajaxリクエストを実行する場合、NOTwwwの下で実行します。ドメイン。IE6はこれを新しいユーザーとして扱い、現在のユーザーのセッションを削除します。その場合、その$ invGroupが無効になるため、クエリは失敗します。なぜ誰かがそれをそのように設定するのかわからない。

いつかこのサイト全体を適切なPHP5でやり直します...いつか。

助けてくれた@JonathanSampsonに感謝します。

于 2012-05-24T22:36:59.553 に答える