2013-09-24 87 views
6

Tôi đang cố gắng sử dụng Laravel trên một máy chủ có nhiều tên miền phụ. Chỉ có một subdoman sẽ có một ứng dụng của Laravel đang chạy nhưng tôi muốn chia sẻ một số thứ (giống như người dùng hiện tại) thông qua phiên bản PHP gốc.Không thể chia sẻ phiên với tên miền phụ với Laravel 4

tôi đã chỉnh sửa cấu hình phiên Laravel để làm việc với các tên miền phụ, thay đổi giá trị tên miền:

'cookie' => 'mydomain_session', 
'domain' => '.mydomain.com', 

Trong subdomain khác, nơi Laravel không chạy, tôi đang cố gắng để truy cập vào phiên giao dịch theo cách này:

session_name("mydomain_session"); 
session_set_cookie_params(0,'/','.mydomain.com',false,true); 
session_start(); 

nhưng không hoạt động, nếu tôi cố gắng lặp lại biến $ _SESSION bị trống.

Điều lạ lùng nhất là nếu tôi cố gắng lặp lại session_id() thì nó giống nhau trong cả hai tên miền phụ.

Hơn nữa, nếu tôi thiết lập cùng một tập lệnh trong tên miền phụ thứ ba, nó chia sẻ phiên với tên miền phụ không phải laravel khác mà không có vấn đề gì.

Vì vậy, những gì tôi đang làm sai? Tôi đang thiếu một cái gì đó hoặc Laravel không quản lý phiên bản PHP gốc theo cách thông thường?

Mọi trợ giúp đều được đánh giá cao!

+0

không 'phiên Laravel của :: get() 'được chia sẻ trên các tên miền chính và miền phụ? – itachi

+0

Không, tôi đang cố gắng sử dụng mảng vanilla $ _SESSION. – Ingro

+0

Tôi không nghĩ rằng bạn có thể vượt qua các phiên trên miền .. havent xác minh tuy nhiên – reikyoushin

Trả lời

0

hoặc Laravel không quản lý phiên PHP gốc theo cách thông thường?

Đúng.

Ném này vào phía trên cùng của tập tin routes.php của bạn:

Session::put('foo', 'bar'); 
die(print_r($_SESSION)); 

Bạn sẽ thấy rằng Laravel đặt phiên thành một mảng đa chiều.

Đối với tôi, "foo" phiên được chứa trong $_SESSION['_sf2_attributes']