极致网信息博客中心 Welcome to Guangxi phpjz.cn Information Technology Co., Ltd.

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

时间::2013-03-14    来源:本站     作者:wongshing 阅读次数:
实例说明
  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的生命周期。
网站小编: 喜欢本站的话请大家把本站告诉给你朋友哦!地址是 www.phpjz.cn QQ群:134624762
web设计/网站开发
南宁网站建设版权所有
南宁网站建站首页 关于我们 联系我们 网站地图 南宁网站建设 网站制作 网页设计 广西网站优化 php建站

用户名:

密 码:

             忘记密码?