PHP上的会话与cookie类型的会话一起使用,而在服务器端,会话信息会不断删除。
要在php中设置时间,可以在session_start之前使用session_set_cookie_params 函数:
session_set_cookie_params(3600,"/");session_start();
例如,3600秒是1个小时,2个小时是3600 * 2 = 7200。
但是它是会话cookie,浏览器可以自行使它过期,如果您想保存长时间会话(例如记住登录),则需要将数据保存在服务器中,并将标准cookie保存在客户端中。
您可以有一个表“会话”:
- session_id int
- session_hash varchar(20)
- session_data文字
并验证cookie,将“会话ID”和“哈希”(出于安全性考虑)保存在客户端,然后可以将会话的数据保存在服务器端,例如:
登录时:
setcookie('sessid', $sessionid, 604800); // One week or seven dayssetcookie('sesshash', $sessionhash, 604800); // One week or seven days// And save the session data:saveSessionData($sessionid, $sessionhash, serialize($_SESSION)); // saveSessionData is your function如果用户返回:
if (isset($_cookie['sessid'])) { if (valide_session($_cookie['sessid'], $_cookie['sesshash'])) { $_SESSION = unserialize(get_session_data($_cookie['sessid'])); } else { // Dont validate the hash, possible session falsification }}显然,在发送数据之前,请保存所有会话/ cookie调用。



