在PHP中Session的有效期默认为24分钟,所以PHP提供了session_set_cookie_params 函数来修改其有效时间.
然而在绝大部分情况下,光是用此函数是无效的.
主要原因是因为PHP默认将session文件放置在统一的目录下,按php.ini设置的时间进行GC(垃圾清理).即使你在PHP中通过函数动态的将清理时间延长,但在程序执行完成后,设置就会失效.
这个时候GC程序就会把你的session按照php.ini设置的时间进行清理.
解决的办法是通过 session_set_save_handler 函数将本应用的session移至独立目录,这样就不会被GC清理掉了.
session_set_cookie_params( 60*60*24*3 );
session_save_path( ROOT .’session/’ );
session_start();