会话无效

时间:2010-09-22 21:30:15

标签: php

在我的本地计算机和在线服务器中, 我有一个文件夹'test',其中有三个文件(one.php,two.php,three.php) .

one.php

<?php
ob_start();
session_start();
$_SESSION['one'] = 1;
header('Location:two.php');
exit();
?>

two.php

<?php
ob_start();
session_start();
$_SESSION['two'] = 2;
header('Location:three.php');
exit();
?>

three.php

<?php
ob_start();
session_start();
echo '<pre>';print_r($_SESSION);
?>

当我在浏览器中获取one.php时获得输出

//本地计算机

array[one] =1  
array[two] =2

这是正确的

//在线服务器

array[one] =1

这不正确

这有什么问题? 我没有收到任何警告,

有人请告诉我,问题是什么?

3 个答案:

答案 0 :(得分:3)

我明白了这个问题。

它与 php.ini 文件的 session.save_path 相关。

确保会话保存路径目录在 php.ini 中设置,存在且可写。

答案 1 :(得分:2)

您应该始终在代码的第一行添加* session_start(); *。 php 5.2.11中存在一个已在5.2.17版本中修复的问题。

此代码不起作用:

<?php 
     session_start();
?>

此代码可以正常工作:

<?php session_start();?>

因此,如果您检查您的php主机版本且该版本是5.2.11或之前版本,那可能就是问题!

答案 2 :(得分:1)

尝试调用session_write_close();在发送标题之前。