2009-07-10 27 views
12

Drupal sử dụng một phiên xử lý tùy chỉnh mà thay đổi quen thuộc ...:Làm cách nào để lưu trữ và truy xuất các biến phiên tùy chỉnh trong Drupal 6?

$_SESSION['foo'] = 'bar';
echo $_SESSION['foo'];

... hành vi. Biến phiên trên của "foo" sẽ không tồn tại từ trang này sang trang khác.

Nhiều nhận xét và mục nhập diễn đàn tại Drupal.com nêu rõ vấn đề mà Drupal sử dụng trình xử lý phiên tùy chỉnh vì lý do hiệu suất và hỗ trợ phân cụm máy chủ. Tuy nhiên, tôi không tìm thấy các ví dụ cụ thể trả lời câu hỏi - "Cần quản lý các biến phiên của riêng bạn trên các trang trong Drupal và không muốn sử dụng cookie? Đây là cách bạn thực hiện ..."

có ai có kinh nghiệm trong chuyện này không vậy? Việc sử dụng của tôi sẽ KHÔNG nằm trong các trang Drupal bên ngoài mà trong các trang mẫu. Điều này dành cho người dùng ẩn danh, không phải là người dùng đã đăng nhập. $ _SESSION hành vi như mong đợi trong trường hợp đó.

Trả lời

17

Ok, đây là câu trả lời - $ _SESSION hoạt động cho người dùng được xác thực cũng như người dùng ẩn danh như mong đợi - nếu không có sự cố nào khác!

Tôi phát hiện ra rằng tôi gặp sự cố sau; bảng "người dùng" Drupal của tôi (hoặc trong trường hợp của tôi "drupal_users") thiếu một người dùng có UID bằng không ("0").

Drupal sử dụng UID 0 để quản lý các phiên trong cơ sở dữ liệu thông qua trình xử lý phiên tùy chỉnh của nó. Nếu người dùng đó không tồn tại trong bảng (nó phải ở đó theo cài đặt mặc định), thì Drupal không thể đính kèm thông tin phiên vào người dùng ẩn danh.

+4

liên kết bài đăng "blog" bị hỏng. – dkiscool

+0

Đã xóa liên kết blog đã chết, đã thay đổi bản sao. – jschrab

Các vấn đề liên quan