PHP中session的使用方法和生命周期问题
1. 用到session的php页面都需要session_start()一遍,并不是在一开始执行的php页面中session_start()一次就够了。否则会在非开启session的页面出现调用session失败的情况。
以下两个反例,在test2.php中均读取不到存入的session。
反例1:
test1.php
<?php session_start(); $_SESSION['username'] = 'XingyaZhao'; $_SESSION['age'] = 18; echo '用户名:' . $_SESSION['username']; echo '<br>'; echo '年龄:' . $_SESSION['age']; ?> <br> <a href="test3.php">跳转到test2.php</a>
test2.php
<?php //session_start(); echo '用户名:' . $_SESSION['username']; echo '<br>'; echo '年龄:' . $_SESSION['age'];
反例2:
在test1.php中没有开启session,在test2.php中开启了session。
2.session的生命周期是从开启session到关闭浏览器。
若以上两个php页面均开启了session,先打开test1.php,存入session值,再打开test2.php可以读取到值。 若打开test1.php存入session值后,关闭浏览器,再启动浏览器直接打开test2.php,则读取不到session值。
另外:导致session过期的另外一个因素是一段时间内不操作。