关于PHP5Session生命周期介绍

PHP5有很多值得学习的地方,这里我们主要介绍PHP5 Session的使用,Session 是如何来判断客户端用户的呢?它是通过 Session ID 来判断的,什么是 Session ID,就是那个 Session 文件的文件名,Session ID 是随机生成的,因此能保证***性和随机性,确保Session 的安全。一般如果没有设置 Session 的生存周期,则 Session ID 存储在内存中,关闭浏览器后该 ID 自动注销,重新请求该页面后,重新注册一个 Session ID。

富源网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联自2013年创立以来到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

如果客户端没有禁用 Cookie,则 Cookie 在启动 Session 会话的时候扮演的是存储 Session ID 和 Session 生存期的角色。我们来手动设置 Session 的生存期:

 
 
  1.    
  2. session_start();   
  3. // 保存一天   
  4. $lifeTime = 24 * 3600;   
  5. setcookie(session_name(), session_id(), time() + $lifeTime, "/");   
  6. ?>  

其实PHP5 Session还提供了一个函数 session_set_cookie_params(); 来设置PHP5 Session的生存期的,该函数必须在 session_start() 函数调用之前调用:

 
 
  1.    
  2.  
  3. // 保存一天   
  4. $lifeTime = 24 * 3600;   
  5. session_set_cookie_params($lifeTime);   
  6. session_start();   
  7. $_SESSION["admin"] = true;   
  8.  
  9. ?>   

#T#如果客户端使用 IE 6.0 , session_set_cookie_params(); 函数设置 Cookie 会有些问题,所以我们还是手动调用 setcookie 函数来创建 cookie。假设客户端禁用 Cookie 怎么办?没办法,所有生存周期都是浏览器进程了,只要关闭浏览器,再次请求页面又得重新注册 Session。那么怎么传递 Session ID 呢?通过 URL 或者通过隐藏表单来传递,PHP 会自动将 Session ID 发送到 URL 上,URL 形如:http://www.openphp.cn /index.php?PHPSESSID=bba5b2a240a77e5b44cfa01d49cf9669,其中 URL 中的参数 PHPSESSID 就是 Session ID了,我们可以使用 $_GET 来获取该值,从而实现 Session ID 页面间传递。

 
 
  1.    
  2.  
  3. // 保存一天   
  4. $lifeTime = 24 * 3600;   
  5. // 取得当前 Session 名,默认为 PHPSESSID   
  6. $sessionName = session_name();   
  7. // 取得 Session ID   
  8. $sessionID = $_GET[$sessionName];   
  9. // 使用 session_id() 设置获得的 Session ID   
  10. session_id($sessionID);   
  11.  
  12. session_set_cookie_params($lifeTime);   
  13. session_start();   
  14. $_SESSION["admin"] = true;   

当前标题:关于PHP5Session生命周期介绍
文章源于:http://www.mswzjz.cn/qtweb/news29/502279.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能