直接上题,代码没贴好多,能看懂就行:
index.php: 
$rs=mysql_fetch_array(mysql_query("select * from user")) or die(mysql_error());
 if($rs[name] === $user && $rs[password] === md5($password))
   {
        Web_Session::setsession($array[]=$rs[name],$array[]=$rs[password]);
 info("Login Success!",'a_index.php'); 
   }class Web_Session{
function setsession($user,$password)
 {
session_register('user');
session_register('password');
 $_SESSION['user']=$user;
 $_SESSION['password']=$password;
 }  
}checklogin.php:
               /**
 * 判断SESSION
 */
function cksession()
  {
  if($_SESSION['user']!='' && $_SESSION['password']!='')
 {
echo "<script>alert('登陆成功!');location.href='a_index.php';</script>";
 }
  else
{
echo "<script>alert('Login Bad!');location.href='index.php';</script>";
}          }我在a_index.php的头部放入了cksession(),按道理说,我index.php已经给SESSION['user']和password赋值了,在进入a_index.php的时候应该提示我下登陆成功吧,但是一点反应也没有,直接就登陆进去了。还有我在其它后台页面中也放入了CHSESSION(),我是直接输入其它页面进的。。并未在index.php登陆,也不是提示我LOGIN BAD
请问这个是怎么回事?

解决方案 »

  1.   

    session_register('user');
    session_register('password');
    $_SESSION['user']=$user;
    $_SESSION['password']=$password;
    之后要session_start()
      

  2.   

    打错了,是之前要session_start()
      

  3.   

    在你的代码中没有看到 session_start();
    也没有看到 cksession() 被执行另外这个代码是错误的,虽然没有看到使用:
    class Web_Session{
    function setsession($user,$password)
     {
    session_register('user');
    session_register('password');
    $_SESSION['user']=$user;
    $_SESSION['password']=$password;
     }   
    }用 session_register 注册的 session 变量,必须是全局变量
      

  4.   

    这是checklogin.php
    <?
    session_start();
    class CheckLogin
    {
        /**
         * 后台登陆认证方法
         *
         */
         function post()
       {
           if(isset($_POST['user']) && isset($_POST['password']))
          {  
           $user = $_POST['user'];
       $password = $_POST['password'];
           $rs=mysql_fetch_array(mysql_query("select * from user")) or die(mysql_error());
       if($rs[name] === $user && $rs[password] === md5($password))
              {
                                     Web_Session::setsession($array[]=$rs[name],$array[]=$rs[password]);
     info("Login Success!",'a_index.php');
      
      }else{
                 info("Login Bad!",'index.php');
    }
      }
       } /**
     * 判断是否获取SESSION
     */
    function cksession()
      {
      if(empty($_SESSION['user']) || empty($_SESSION['password']))
     {
    echo "<script>alert('Login Bad!');location.href='index.php';</script>";  }
      else
    {
    echo "<script>alert('登陆成功!');location.href='a_index.php';</script>";
    }          }
    }
    class Web_Session
     {
    /**
     * 设置指定的COOKIE值
     *
     * @access public
     * @param string $key 指定的参数
     * @param mixed $value 设置的值
     * @param integer $expire 过期时间,默认为0,表示随会话时间结束
     * @param string $url 路径(可以是域名,也可以是地址)
     * @return void
     */
    function setsession($user,$password,$expire = 0)
      {
     session_register('user');
     session_register('password');
     $_SESSION['user']=$user;
     $_SESSION['password']=$password;
      }  
    /**
     * 删除指定的COOKIE值
     *
     * @access public
     * @return void
     */
    function destroy()
      {
      $_SESSION["user"]="";
      $_SESSION["password"]="";
      echo "<script>alert('login out!');location.href='index.php';</script>";
      exit;
      }
     }
    ?>
      

  5.   


    我说了。。我在后台其它页面头部使用了cksession()
      

  6.   

    我原来是用COOKIE。。过后换成了SESSION.那个错误的要怎么修改啊????
      

  7.   


    <?php 
         echo 'csdn这么好用的代码工具,为啥 不用涅';
    ?>
      

  8.   

    session_start();
    要放在第一行啊