ini_set('session.save_path','E:/sessiontmp/'); 
ini_set('session.gc_maxlifetime',3600 * 8); 
$lifeTime = 3600 * 8; 
setcookie(session_name(), session_id(), time() + $lifeTime, "/"); 
在session设置的时候,发现并没有在E:/sessiontmp目录下生成相应的session文件,这是为什么?

解决方案 »

  1.   

    1.session没有开启
    2.书写权限不足
      

  2.   


    不用设置目录, 可以直接 在 php.ini 设置 session 在 cookie 的保存时间
      

  3.   


    ini_set('session.save_path','e:/sessiontmp/'); 
    ini_set('session.gc_maxlifetime',3600 * 8); 
    $lifeTime = 3600 * 8; 
    setcookie(session_name(), session_id(), time() + $lifeTime, "/"); 
    session_start();这样就会产生一个空文件了
      

  4.   

    只有在session_start();函数运行以后,才会产生一个session文件
      

  5.   

    ini_set('session.save_path','E:/sessiontmp/'); 要在每个页都设,还是在PHP.ini里设方便
      

  6.   

    还有个问题,我想保存session信息8小时,为了方便测试,我使用1分钟
    session.php
    <?php
    header("Content-type:text/html;charset=utf-8");
    ini_set('session.save_path','e:/sessiontmp/'); 
    ini_set('session.gc_maxlifetime',60); 
    $lifeTime = 60; 
    setcookie(session_name(), session_id(), time() + $lifeTime, "/"); 
    session_start();
    $_SESSION['name'] = 'ddddddddd';
    ?>test.php
    <?php
    header("Content-type:text/html;charset=utf-8");
    ini_set('session.save_path','e:/sessiontmp/'); 
    ini_set('session.gc_maxlifetime',60); 
    $lifeTime = 60; 
    setcookie(session_name(), session_id(), time() + $lifeTime, "/"); 
    session_start();
    var_dump($_SESSION);
    ?>
    在运行后session.php后,再运行test.php,然后在隔一分钟后再运行test.php,发现session信息还在?这是为什么?
      

  7.   


    在 php.ini 这样设置 一下session.gc_probability = 1   
    session.gc_divisor = 1看看效果怎么样 ..
      

  8.   

    我是虚拟主机,改不了php的设置
      

  9.   

    只有在session_start();函数运行以后,才会产生一个session文件
    .人力资源