这是一个非常非常正常的事情!
Session建立之后,它的相关属性比如说存在时间等!在PHP.ini中都有相关的设定!如果不解除相关session,只要知道地址当然是可以窜来窜去的了!
你可以感觉一下,你关闭IE之后,再直接贴上去地址,看能不能进入!如果可以的话说明,你的session 的存在时间是不随你的IE的关闭而取消的!反之。具体相关说明请查看http://www.obird.com/obird/words_view.php?id=33

解决方案 »

  1.   

    因为SESSION还存在呀~~
    如果进不去就不正常了.
    不过不登录是不会进去的.
      

  2.   

    这是正常的,如果你一定需要通过连接进入的话,可以用$_SERVER['HTTP_REFERER']来判断
    若是从地址栏输入地址进入,则$_SERVER['HTTP_REFERER']为空
      

  3.   

    <script language="javascript">
    if (document.referrer=="")
    {
    location.href="error.htm";
    }
    </script>
    呵呵,这样比较狠一点
      

  4.   


    你在session里面加入页面文件名的信息不就行了,进入页面时判断一下就OK了,不是这个页面就不行嘛~~
      

  5.   

    session_start();
    if (!session_is_registered($username)){
       header("location: error.php");
    }
    else{
       echo "session已注册!!";
    }
      

  6.   

    还没有搞定?
    <?php
    session_start();
    if(empty($_SERVER['HTTP_REFERER']) && basename($_SERVER['PHP_SELF']) != "login.php") {
      header("Location: login.php");
      echo "尚未登录!";
    }
    ....
      

  7.   

    <?php
    session_start();
    if(empty($_SERVER['HTTP_REFERER']) && basename($_SERVER['PHP_SELF']) != "login.php") {
      header("Location: login.php");
      echo "尚未登录!";
    }
    ?>
      

  8.   

    没有必要这样搞!对Session限的太死,会很麻烦的·
    如果你一定要这样做,对上一页面的路径进行判断也可以!