Tôi gặp sự cố với thư Magento. Tôi đang xây dựng mô-đun tùy chỉnh theo lý thuyết nên có thể hạn chế quyền truy cập vào một số phần của cửa hàng. Tôi đã tạo một người quan sát móc vào sự kiện controller_action_predispatch
và kiểm tra xem người dùng có thể truy cập yêu cầu hiện tại hay không. Nếu không thể truy cập hành động, người quan sát sẽ chuyển hướng người dùng và đặt thông tin lỗi. Tôi muốn đặt url chuyển hướng đến trang mà khách hàng đến từ để tránh nhấp qua toàn bộ cửa hàng. Tôi đang xem HTTP_REFERER
và sử dụng nó nếu nó được thiết lập, nếu không tôi chuyển hướng khách hàng đến trang chủ. Vấn đề là trong trường hợp sau (chuyển hướng trang chủ) mọi thứ hoạt động tốt nhưng khi tôi đặt url dựa trên referer tôi không thấy thông báo lỗi trong hộp tin nhắn.Magento mất thông báo sau khi chuyển hướng
Mã từ người quan sát ($name
biến là một chuỗi):
Mage::getSingleton('core/session')->addError('Acces to '.$name.' section is denied');
$url = Mage::helper('core/http')->getHttpReferer() ? Mage::helper('core/http')->getHttpReferer() : Mage::getUrl();
Mage::app()->getResponse()->setRedirect($url);
Những gì tôi thấy thú vị là nếu tôi làm bất kỳ thay đổi trong file quan sát và lưu nó, sau đó yêu cầu tiếp theo mà thất bại và được chuyển hướng đến url của người giới thiệu hiển thị thông tin lỗi nhưng bất kỳ thông tin nào tiếp theo sẽ mất các thông báo.
Tôi đã suy nghĩ rằng vấn đề là ở toàn bộ url và instalation địa phương của tôi (Tôi đang sử dụng miền .local) nhưng vì vậy tôi đã cố gắng thêm
$url = str_replace(Mage::getBaseUrl(), '/', $url);
nhưng điều này đã không giúp đỡ.
Tôi cũng đã thử chuyển hướng bằng cách sử dụng chức năng php header()
mà không có bất kỳ kết quả nào.
Tất cả bộ nhớ cache bị tắt. Các công việc mà gây nên các vấn đề như sau:
- Tôi sẽ bất kỳ trang truy cập (ví dụ/khách hàng/tài khoản)
- Bấm vào giỏ hàng liên kết (giỏ cho tài khoản này bị vô hiệu hóa)
- Return to/khách hàng/tài khoản và các thông báo lỗi được hiển thị
- Bấm vào giỏ hàng liên kết lại
- Return to/khách hàng/tài khoản nhưng không có thông báo lỗi
Bất kỳ gợi ý về nơi để tìm sẽ được đánh giá cao.
Bạn có thể tắt tất cả bộ đệm (+ FPC nếu magento EE) để xem đó có phải là sự cố bộ nhớ cache không? Nhân tiện, tôi không hiểu tất cả những gì bạn thấy, bạn hiểu rằng các thông báo lỗi phiên bị xóa sau lần hiển thị đầu tiên? –
Tôi mở rộng mô tả, hy vọng nó rõ ràng bây giờ. – Zefiryn