该文中$mysessionname = "po_maint" . $micro;有可能在某些机器上不能实现。最好不用,因为session的临时文件一般都是sess_xxxxxxxxxx而不是po_maint_xxxxx

解决方案 »

  1.   

    我的代码大致如下:
    我使用phplib库
    class Member()
    {
       var $db;
       var $userId;
       var $level;//用户身份
       Member()
       {       $this->db = new DB_Sql();
       }
       function login($userId, $pwd)
       {
          $sql = "SELECT * FROM user WHERE USERID = '$userId'     &&       PASSWORD = '$pwd'";
           $this->db->query($sql);
           if ($this->db->next_record())
           {
      $this->userId = $this->db->f('USERID');
      $this->level  = $this->db->f('LEVEL');   if ($this->db->f('LEVEL') == 'admin')
    return 3;
      else if($this->db->f(LEVEL) == 'teacher')
    return 2;
      else
    return 1;
    }
    else
    return 0;
         }
    }
    文件login.php
    $member = new Member();
    $res = $member->login($HTTP_POST_VARS['uId'], $HTTP_POST_VARS['pwd']);

    if (empty($mysessionname))
    {
    $micro = microtime();
    $micro = str_replace(" ", "", $micro);
    $micro = str_replace(".", "", $micro);
    $mysessionname = "sess_".$micro;
    }
    session_name($mysessionname);

    switch($res)
    {
    case 3:
    session_start();
    session_register('member');
    Header("Location: ../admin/index.php");
    exit();
    case 2:
    session_start();
    session_register('member');
    Header("Location: ../teacher/index.php");
    exit();
    。。
    }但是session没法注册;