如果没错的话,那个很长的“数字”就是SessionID吧。知道一个客户端是怎样在服务器确定是哪个session文件的吗?

解决方案 »

  1.   

    这个是我的 session_check.php 感觉还是比较安全的
    *********************************************
    <?php
    session_start();
    ?>
    <LINK HREF="/include/style.css" REL="stylesheet" TYPE="text/css">
    <?php
    if(!(session_is_registered("USERNAME")))
    {
    echo "<script lanugage=\"javascript\">\n";
    echo "alert ('对不起,请您首先登录!');\n";
    echo "location=\"/\";\n";
    echo "</script>";
    exit();
    };
    ?>
      

  2.   

    谢谢sandj(不了)
    我先试一下。
      

  3.   

    还是不行,我是这样做的:
    首先在登陆页面注册一个SID
    session_start();
    session_register("my_var");
    然后进入check.php代码如下:
    <LINK HREF="/include/style.css" REL="stylesheet" TYPE="text/css">
    <?php
    if(!(session_is_registered("my_var")))
    {
    echo "<script lanugage=\"javascript\">\n";
    echo "alert ('对不起,请您首先登录!');\n";
    echo "location=\"/\";\n";
    echo "</script>";
    exit();
    }
    else
    {echo "成功登陆";
    };
    ?>
    但是当我把“http://localhost/check.php?PHPSESSID=e477d3728197fcb4bfd61c37409c327b”
    复制下来,把IE关掉,再另外开一个,把URL粘贴上去,还是写着“成功登陆”。
      

  4.   

    如果关掉IE,session是会过期的,必须重新登陆。看看你的程序判断流程是否有错??
      

  5.   

    请 hbolive(紫月亮)
    指点!
      

  6.   

    PHPSESSID意思这么明白的一个变量...
      

  7.   

    你把这个变量的数据传给一个页面,告诉服务器,我要用PHPSESSID指向的session物理文件里的数据。他,他能找不到session的数据吗?
      

  8.   

    楼上的老兄,拜托我学PHP才一个多星期。
      

  9.   

    老兄,我给你一个URL,那上面说可以用直接调用"PHPSESSID=e477d3728197fcb4bfd61c37409c327b"的。http://phpuser.com/tips_and_tricks/detail.php?id=45
      

  10.   

    嘿嘿~~~php中使用session的原理是就是这样的。服务器就是靠SessionID来确定哪个客户端是用哪个session文件里的数据的。当然这个SessionID可以靠cookie来保存,也可以直接在url中传递。你就是使用了后面这个方式来维持了server和client之间的通信。
      

  11.   

    那么说“http://phpuser.com/tips_and_tricks/detail.php?id=45”里面说的肯定是错了?
    谢谢你的指导。
      

  12.   

    你到底有没有明白PHPSESSID是什么?
    那篇文章我看了,跟你说的问题没有关系啊~
      

  13.   

    前几天才把数据库建好,这才开始接触PHP,所以难免说外行话,请原谅。
    不过我想搞清楚“http://phpuser.com/tips_and_tricks/detail.php?id=45”和我现在的代码到底有什么区别?
    我觉得一个只是用的是“echo "<script lanugage=\"javascript\">\n";”,而另一个用的是超链接。
    请斑竹指点。
      

  14.   

    没有本质上的区别。关键是你复制url的时候不能把sessionID也复制下来,因为那样的话新开的ie和你本身那个就没有区别了。你提到的安全性是别人知道url,但是他能知道那么一大长串的sessionID数据吗?只要他猜不到那串字符,他就不能使用那个session里保存的数据呀~
      

  15.   

    to:zxyufan(宇凡)你这样说有点误导,如果真想让session失效,可以用session_destroy()函数来结束,
    那样即使他复制或者刷新也没有用。还有点建议,做为斑竹要帮助大家尽量把问题搞清楚,我看你回答很多人的问题都很含糊!
    (一点建议,希望不要生气)
      

  16.   

    我也有类似的困惑
    在IE关闭时Session文件(服务器上的)并没有被删除
    需要在脚本中执行session_destory()
    why?ASP就不用
    是不是因为用的是CGI方式?
      

  17.   

    你的sessionID用的是url传递的
    这样可以防止客户机不支持cookie的情况
    服务器上的session存储是有时间限制的
    安全你不用担心
    用session_destory可以显式的把服务器上的session文件删除