在購物車是在$_SESSION['shopping_cart'] array
設置一個在線商店,我有這樣的檢查在頁面的頂部:
session_start();
if (empty($_SESSION['shopping_cart'])) {
//Not granting access for users with empty carts or when the session has expired
header('Location: toanotherpage');
exit;
}
這有所有工作直到它沒有。出於某種原因,在結帳頁面上花費了太多時間的用戶已經使會話過期,但它仍以某種方式滑過頁面頂部的empty()
檢查。這一切都發生在頁面重新加載的表單提交之後。這意味着用戶被收費,但進一步下降的訂單確認和收據無法生成,因爲會議是空的。
難道empty()
以某種方式可以將過期的會話誤認爲不爲空?或者理論上講,當腳本執行時會話被破壞,因此在檢查完成後會話不是空的?
感謝
做任何事情進一步下跌的一頁影響會議的價值?可能是'$ _SESSION ['shopping_cart']'*不是*最初是空的,並且稍後的邏輯會清空它。 – MichaelRushton
@MichaelRushton只有在訂單確認和收據生成後纔會設置。 – NewInTheBusiness
你確定它*是空的?請記住'$ _SESSION ['shopping_cart'] = array(NULL)'*'不是*空的。 – MichaelRushton