1。session_start()前必须没有输出,
重新登陆说明重新载了一个页面,session又一次验证是正确的,看看你登陆的程序,所以第一次session是不正确的了

解决方案 »

  1.   

    session_start();
    if(!session_is_registered(session名))
    {
        echo "非法登录";
    }
    else
    {
        echo "成功登录";
    }
      

  2.   

    你在session_start()前加上unset(session名),试试
      

  3.   

    1.php:
    <?
    session_start();function errormsg($msg)
    {
       echo"<script language=javascript> alert('$msg');history.back();</script>";
       exit;
       }if($OK)
     {
      if(!$user_name)
         errormsg("请输入用户名!");
      elseif(!$user_password)
             errormsg("请输入密码!");
          else
             {
               $SQL1="SELECT * FROM $LOGIN_TABLE WHERE user_name='$user_name'";
               $result1=mysql_query($SQL1) or die(mysql_error());
               $row1=mysql_fetch_array($result1);
               if(!$row1["user_name"])
                 errormsg("用户名错误!");
               else
                  {
                     $SQL2="SELECT* FROM $LOGIN_TABLE WHERE user_name='$user_name' and user_password='$user_password'";
                     $result2=mysql_query($SQL2) or die(mysql_error());
                     $row2=mysql_fetch_array($result2);
                     if(!$row2["user_password"])
                       errormsg("密码错误!");
                     else
                        {
                          if($user_name=='noc')
                             {
                               $admin='noc';
                               session_register('admin');
                               Header("Location:2.php\n");  
                               exit;
                             }
                           else
                             {
                               $wgy=$user_name;
                               session_register('wgy');
                               Header("Location:3.php\n");
                               exit;
                             }
                         }
               }
      }
    }
    ?> 
    2.php
    <?
    function errormsg($msg)
    {
       echo"<script language=javascript> alert('$msg');history.back();</script>";
       exit;
       }
       
    if(!session_is_registered('admin'))
       errormsg("身份验证失败,属于非法登录!");
    ?><html>
    ...
    </html>
      

  4.   

    <?session_start();
    function errormsg($msg)
    {
       echo"<script language=javascript> alert('$msg');history.back();</script>";
       exit;
       }
       
    if(!session_is_registered('admin'))
       errormsg("身份验证失败,属于非法登录!");
    ?>
     每进一次你都要session_start()
      

  5.   

    index.php
    <?php
    session_start();
    include "check.php";
    ...
    ....
    ?>check.php
    <?php
    session_start();
    if (!("xinxin1982"=$sess[name]&&"password"=$sess[passwd])){
      echo "你还没有登陆";
      exit();
    }
    //$sess为session注册的变量
    ?>你在需要检验的文件中先session_start();一下,然后include就可以了
    就是这样,很方便的