簡體   English   中英

無法刪除和更新購物車中的商品,會話有問題

[英]Cannot delete and update items in my shopping cart something wrong with sessions

我有購物車,當我向購物車中添加物品時,當我想更改數量或刪除任何物品時,這給了我空的購物車。 這是開頭的購物車代碼:

編輯:

<?php 
session_start();
require "C:/xampp/...../DButils.php";
require "C:/xampp/..../functions.php";
$msg = '';
if(isset($_REQUEST['command']) && isset($_REQUEST['pid'])>0)
 {
    remove_product($_REQUEST['pid']);
}
else if(isset($_REQUEST['command']) && $_REQUEST['command'] == 'clear'){
    unset($_SESSION['cart']);
}
else if(isset($_REQUEST['command']) && $_REQUEST['command'] == 'update'){
    $max=count($_SESSION['cart']);
    for($i=0;$i<$max;$i++){
        $pid=$_SESSION['cart'][$i]['productid'];
        $q=intval($_REQUEST['product'.$pid]);
        if($q>0 && $q<=999){
            $_SESSION['cart'][$i]['qty']=$q;
        }
        else{
            $msg='Some proudcts not updated!, quantity must be a number between 1 and 999';
        }
    }
}

 ?>

您沒有正確使用isset()函數。 這將返回布爾值true或false,而不是該值的字符串。 您可能打算做的是:

else if(isset($_REQUEST['command']) && $_REQUEST['command'] == 'clear'){

...和...

else if(isset($_REQUEST['command']) && $_REQUEST['command'] == 'update'){

沒有這些更改,您將永遠無法執行那些代碼塊,因為true / false永遠不會等於“ clear”或“ update”。

if(isset($_REQUEST['command']) && $_REQUEST['command']=='add' && $_REQUEST['productid']>0)
{
    remove_product($_REQUEST['pid']);
}

您似乎想在要添加產品時刪除該產品。

另外,正如@cillosis所提到的

else if(isset($_REQUEST['command'])=='update'){

將始終評估為假。 這是因為isset()僅返回BOOLEAN值(true,false,1、0),並且您正在評估條件:“如果'true / false'等於'update'”,並且由於true和false都不相等到字符串“更新”時,測試每次都會失敗。

如果您更新問題中的代碼以刪除所指出的錯誤,則可能更容易為您提供問題的答案。 正如目前所寫的那樣,很難解密。

嘗試這個

 if($_REQUEST['command']=='delete' && $_REQUEST['id']>0){
 remove_product($_REQUEST['id']);
 }
 else if($_REQUEST['command']=='clear'){
 unset($_SESSION['cart']);
 }
 else if($_REQUEST['command']=='update'){
 $max=count($_SESSION['cart']);
 for($i=0;$i<$max;$i++){
 $id=$_SESSION['cart'][$i]['id'];
 q=intval($_REQUEST['qty'.$id]);
 if($q>0 && $q<=999){
 $_SESSION['cart'][$i]['qty']=$q;
 }
 else{
 $msg='Some proudcts not updated!, quantity must be a number between 1 and 999';
 }
 }
 }

表單按鈕應該是這樣的

 <a href="javascript:del(<?php echo $id?>)">
 <input type="button" class="button5" value="Remove" /></a>

據我所知,服務器語言(php)無法理解給定的目錄,請嘗試使用有效的目錄,例如require projectName/functions.php; 希望它也會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM