分享

在PHP中解决SESSION中的常见问题

 Alkaid2015 2013-11-02
实例说明
  SESSION的功能十分强大,这一点在业界中是公认的。但是越是功能强大或者技术含量高的方法往往执行条件也越苛刻,SESSION技术的应用也是如此。在本实例中我们将解决一些在SESSION应用中常见的问题,包括session_start()函数的应用限制和使用COOKIE函数设置SESSION过期时间时需要注意的事项。
关键技术
  (1)session_start()函数:使用此函数之前浏览器不能有任何输出。
  (2)使用COOKIE函数为SESSION设定过期时间时,首先,要确定浏览器支持COOKIE,其次,要将session_start()函数放置在setcookie()函数之前,否则客户端不会创建COOKIE文件。
设计过程
  (1)创建index.php文件,编写PHP脚本,并应用echo语句在session_start()函数之前输出一个字符串,其代码如下:
  <?php
  echo"mrsoft";                    //输出一个字符串
  session_start();                 //初始化SESSION变量
  ?>
  当运行本代码时,将echo语句放置于session_start()函数之后即可解决该问题。
  (2)利用COOKIE机制设置SESSION的过期时间。在index.php文件中,首先初始化SESSION变量,然后定义一个SESSION变量pic,最后通过setcookie()函数设置SESSION变量的过期时间,其代码如下:
  <?php
       session_start();              //启动SESSION
       $_SESSION['pic']="mrsoft";     //设置SESSION变量
       setcookie("pi","$_SESSION['PIC']",time()+60);        //设置SESSION的过期时间
   ?>
   运行本代码,可以在客户端的COOKIE文件夹下查看到创建的COOKIE文件。但是,如果将setcookie()函数放置在session_start()函数之前,运行本代码,在客户端的COOKIE文件夹中找不到对应得到COOKIE文件。
秘笈心法
  通过session_set_cookie_params()函数延长SESSION的生命周期。
  在开发程序的过程中可能会遇到这样的情况,以会员身份登录一个网站后,若停留的时间较长,再在这个网站中发布信息时,会提示“您没有登录,请登陆后再发布信息”,之所以会出现此类问题,是因为在登录时定义的SESSION变量已经过期,导致当前用户不可用,需要重新登录。解决此问题最好的方法就是通过session_set_cookie_params()函数延长SESSION的生命周期,即应用session_set_cookie_params()函数将SESSION的过期时间设置为0。读者不妨自己试一试,看是否能够延长SESSION的生命周期。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多