php中session有时候能获取,有时候无法获取。。。

<?php
session_start();
$conn=mysql_connect("localhost","root","root");
if(!$conn){
die("连接失败".mysql_errno());
}
mysql_query("set names utf8");
mysql_select_db("student",$conn)or die(mysql_errno());
$id=$_POST["id"];
$password=$_POST["password"];
$name=$_POST["name"];
$sex=$_POST["sex"];
$grade=$_POST["grade"];
$_SESSION["id"]=$id;
$_SESSION["name"]=$name;
$sql="insert into stu(id,password,name,sex,grade)values('$id','$password','$name','$sex','$grade')";
//echo $sql;
mysql_query($sql)or die('执行失败');
echo "<script>alert('注册成功!');location.href='login.php'</script>";
?>
上面是创建session页面,下面页面为输出session值,但不能输出,上次能输出,这次就不行了才一天时间。。。
<?php
@session_start();
echo $_SESSION["name"];
echo "欢迎你,".$_SESSION["name"];
?>

PHP中的session有效期默认是1440秒(24分钟),也就是说,客户端超过24分钟没有刷新,当前session就会失效。当然如果用户关闭了浏览器,会话也就结束了,Session自然也不存在了!

可以通过如下方式来设置:
<?php
session_start();
// 保存一天
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");
?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-24
你重新执行,完了还能有输出么?
没有输出,很可能是浏览器清了cookie缓存,或者配置中,缓存设置时间很短
相似回答