2013-04-19 36 views
7

Tôi có một trang tạo Phiên cho giỏ hàng.Thời gian hết hạn của phiên PHP - giữ phiên còn sống trong một số phút/giờ/ngày cụ thể

$_SESSION['cart']=array(); 

Dường như nếu máy chủ tự động giết phiên sau thời gian X không hoạt động, tôi giả sử này được thiết lập trong php.ini (nhưng máy chủ của tôi không cấp cho tôi tiếp cận, họ chỉ cho tôi nói với họ những thay đổi , vì vậy tôi không thể chơi xung quanh! :().

có cách nào tốt hơn để giữ cho các phiên còn sống ví dụ trong 2 ngày hoặc cho một số cụ thể của phút/giờ?

+1

thay đổi các khác nhau 'phiên. * 'Thiết lập sử dụng' ini_set() ' ** TRƯỚC KHI ** bạn gọi session_start(): http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime –

Trả lời

13

gọi session_set_cookie_params() trước khi bạn gọi session_start() trong tập lệnh của bạn:

$session_lifetime = 3600 * 24 * 2; // 2 days 
session_set_cookie_params ($session_lifetime); 
session_start(); 
// ... 

Từ documentation:

session_set_cookie_params()
Set thông số cookie sẽ được xác định trong file php.ini. Hiệu ứng của hàm này chỉ kéo dài trong suốt thời gian của tập lệnh. Do đó, bạn cần gọi số session_set_cookie_params() cho mọi yêu cầu và trước khi gọi session_start().

Hoặc, bạn có thể cập nhật tệp php.ini của mình là session.cookie_lifetime chỉ thị thành 2 ngày (tính bằng giây).

+1

ouh ... câu trả lời của bạn tốt hơn tôi;) –

1

thiết lập một cookie và sự thay đổi trong bạn cấu hình mà các cookie sử dụng phiên

session_start(); 
set_cookie("PHPSESSID", session_id(), time() + 3600 * 2); 

này duy trì sự sống phiên của bạn trong 2 giờ

+0

điều này không hoạt động không may .. xem câu hỏi của tôi ở đây: http://stackoverflow.com/questions/38566461/keep-only-specific-sessions-alive-for-several-weeks?noredirect=1#comment64522757_38566461 –

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