http://hi.baidu.com/gksw/blog/item/985d9f51e74a2b2343a75bb1.html你上面的要求直接用Cookie还方便些

解决方案 »

  1.   

    这个是我按楼主的要求刚刚写的代码:<?php
    error_reporting(0);//设置不显示错误
    session_save_path("./session");//设置SESSION目录
    session_start();
    if($already_logon==true)//判断是否已经登录
    {
    $abc=time() - $_SESSION['logon_time'];//减去登录时间
    if($abc>30)//如果大于30秒,则
    {
    session_destory();//清空SESSION
    }
    }
    elseif($logon_off==true)//判断是否要退出
    {
    session_destory();//清空SESSION
    }
    else
    {
    if($logon_on == true)//判断是否登录成功,具体楼主自己写
    {
    $_SESSION['logon_time']=time();//记录登录时间
    }
    }
      

  2.   

    用Cookie的话用户可以做假数据.我想把用户数据保存到服务器上.谢谢
      

  3.   

    修改php.ini配置文件中的下列参数,然后重启Apache或IIS:;session文件的保存位置,根据你的实际情况来填写
    session.save_path = d:\web\session;允许使用cookie文件传递session参数
    session.use_cookies = 1; Lifetime in seconds of cookie or, if 0, until browser is restarted.
    ;关闭浏览器后session过期
    session.cookie_lifetime = 0; After this number of seconds, stored data will be seen as 'garbage' and
    ; cleaned up by the garbage collection process.
    ;session最长过期时间,如果超过1800秒后还没有关闭浏览器,session也过期
    session.gc_maxlifetime = 1800
      

  4.   

    cookies文件中只记录PHPSESSID;session变量和变量的值是保存在服务器端的.
      

  5.   

    另外还有一个问题.不知道该怎么解决我是通过设置SESSION.我在a页面设置了session.所有值都有
    我跳转至在b页面获取值session时.session值没有了.我用了global $_SESSION;加载进来了.按道理应该保存了.为什么没有了呢????
    我程序是class cls_dispose
    {
    //用户登陆
    public function login($userName, $passWord)
    {
      //验证代码省略
      $this->setSession($userName);
      return true;
    }/**
    *  方法:设置在线Session
    * @userName -- 用户姓名
    */
    private function setSession($userName)
    {
       global $_SESSION;
       $_SESSION["cname"] = $userName;
    }
    /**
    *  方法:检测用户是否登陆
    */
    public function isLogin()
    {
       global $_SESSION;
       if (!isset($_SESSION["cname"]))
       {
         return false;
       }
       else
       {
         return $_SESSION["cname"];
       }
    }
    }
    $test = new cls_dispose();if ($test->login('lulu','123456'))
    {
       echo "登陆成功";
       if (empty($test->isLogin()))
       {
         echo "有用户session";
       }
       else
       {
         echo "无用户session";
       }
    }
      

  6.   

    /**
    *     方法:检测用户是否登陆
    */
    public function isLogin()
    {
       global $_SESSION;
       if (!isset($_SESSION["cname"]))
       {
         return false;
       }
       else
       {
         return $_SESSION["cname"];
       }
    }这里错了,你把if (!isset($_SESSION["cname"]))写错了,导致如果用户登陆你就说没登陆,把代码改为:/**
    *     方法:检测用户是否登陆
    */
    public function isLogin()
    {
       global $_SESSION;
       if (isset($_SESSION["cname"]))//去掉叹号
       {
         return false;
       }
       else
       {
         return $_SESSION["cname"];
       }
    }
      

  7.   

    public function isLogin()
    {
       global $_SESSION;
       //不存在返回false
       if (!isset($_SESSION["cname"]))
       {
         return false;
       }
       else
       {
         return $_SESSION["cname"];
       }
    }
    }$test = new cls_dispose(); if ($test->login('lulu','123456')) 

      echo "登陆成功"; 
      //如果为false,返回TRUE
      if (empty($test->isLogin())) 
      { 
        echo "有用户session"; 
      } 
      else 
      { 
        echo "无用户session"; 
      } 
    } ===========================================
    所以你是错误的,呵呵.private function setSession($userName)
    {
       global $_SESSION;
       $_SESSION["cname"] = $userName;
    }
    =============================================
    session是全局变量,不需要global