2017-08-13 77 views
1

我正在爲opencart用戶開發一個android應用程序。我需要解碼購物車信息,並從oc_customer表中識別產品標識數量等。 我想這OpenCart購物車信息解密

$sql = "SELECT cart FROM oc_customer WHERE email='an registered user email';"; 
$result = mysqli_query($con, $sql); 
if (mysqli_num_rows($result) == 1) { 
    $row = mysqli_fetch_assoc($result); 
    var_dump(unserialize(base64_decode($row['cart']))); 
} 

我收到此錯誤

unserialize(): Error at offset 0 of 36 bytes 

誰能給我一個線索,我怎麼能得到這個工作

回答

1

(根據以往的問題,我假設你正在使用OpenCart 3.0.2.0)。

要獲取客戶的購物車內容,請根據他的電子郵件從oc_customers表中獲取客戶的編號,然後在oc_cart表中查找該客戶編號。 (這是OpenCart 2.3+中的做法; oc_customers表的購物車字段用於OpenCart的舊版本。)

+0

沒有oc_cart表。在客戶表 –

+1

中有一個叫做cart的列,至少從2.3.0.2開始,oc_cart表已經存在了。 –

+0

感謝您的信息。我正在使用以前的一個。但是,我解決了我的問題。請編輯你的答案一點。 –

0

在進行了幾項研究之後,我發現我錯誤地解碼了購物車列的全文。 後來,不是解碼全文,而是解碼雙引號文本和反序列化,這給了我一個包含product_id的數組。

此外,Opencart有一個獨立的oc_cart表,沒有這些複雜性。使用版本2.3+可避免所有這些解碼

-1

您無需使用base64_decode()解析購物車信息。只是使用

unserialize(($row['cart']); 
+0

不,只有反序列化給出了錯誤'在44的偏移量0出錯' –