实例说明
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的生命周期。 |
|
来自: Alkaid2015 > 《74.PHP》