Notice: Undefined index: cart_order in uc_cart_checkout_form_cancel() (line 340 of /home/truongsonjsc.com/public_html/sites/all/modules/ubercart/uc_cart/uc_cart.pages.inc).
Dòng 340:
function uc_cart_checkout_form_cancel($form, &$form_state) {
if (intval($_SESSION['cart_order']) > 0) {
uc_order_comment_save($_SESSION['cart_order'], 0, t('Customer cancelled this order from the checkout form.'));
unset($_SESSION['cart_order']);
}
Em đã fix lỗi bằng cách fix lỗi bằng các thay intval thành isset.
Vậy intval và isset khác nhau như thế nào, và việc thay đổi như thế có gây ra lỗi gì không, em fix rồi thì không thấy bị nữa, nhưng không biết được tác hại của nó thế nào. mong được giúp đỡ. cảm ơn @Group_Drupal_Vietnam
Comments
Để chắc ăn
Vì hok biết nên em đã để chắc chắn hơn em thay
function uc_cart_checkout_form_cancel($form, &$form_state) {
if (intval($_SESSION['cart_order']) > 0) {
uc_order_comment_save($_SESSION['cart_order'], 0, t('Customer cancelled this order from the checkout form.'));
unset($_SESSION['cart_order']);
}
thành
function uc_cart_checkout_form_cancel($form, &$form_state) {
if (intval(isset($_SESSION['cart_order'])) > 0) {
uc_order_comment_save($_SESSION['cart_order'], 0, t('Customer cancelled this order from the checkout form.'));
unset($_SESSION['cart_order']);
}
Free Notes - Cam Xuyen
intval thì giá phải là số
intval thì giá phải là số nguyên.
isset thì kiểm giá trị có tồn tại không.
Bạn thay như vậy không sao cả, chỉ chắc chắc hơn thôi :)
MinhVN
Intval() sẽ parse giá trị đầu
Intval() sẽ parse giá trị đầu vào thành kiểu int, nếu giá trị đầu vào != int thì sẽ trả về 0
Isset() dùng để kiểm tra giá biến truyền vào đã được set giá trị hay chưa, sẽ return "true" hoặc "false",
như vậy "if ( intval(isset($_SESSION['cart_order'])) >0 )" cũng chẳng khác gì "if(isset($_SESSION['cart_order']))", vì nó đều trả về "0"(false) hoặc "1"(true) :D
Mục đích của if gốc khi bạn chưa thay đổi < if (intval($_SESSION['cart_order']) > 0) {.... > là nhằm kiểm tra xem trong giỏ hàng của bạn đã có sản phẩm chưa (nếu có thì số lương > 0, nếu không có thì số lượng = 0) ,
Nếu $_SESSION['cart_order'] đã được set = 0 trước đó rồi, và nếu bạn dùng isset ( $_SESSION['cart_order']) thì nó sẽ luôn trả về "true" => sẽ có 1 vài trường hợp xảy ra không đúng với mục đích ban đầu. Nhưng mình nghĩ khác biệt này cũng không quan trọng lắm.
intval và isset khác nhau như thế nào
intval và isset khác nhau như thế nào, và việc thay đổi như thế có gây ra lỗi gì không, em fix rồi thì không thấy bị nữa, nhưng không biết được tác hại của nó thế nào. mong được giúp đỡ
Trâu gác bếp | Evi Mart