先注册一个session,每个用户登陆都赋这个相同的session值

解决方案 »

  1.   

    楼上的,这样子就是用同一个session吗??
    感觉不对哦。
      

  2.   

    我想这样:
    session_id("SHARESESSIONID");
    session_start();
    这样每个用户登录都连接到共享SHARESESSIONID,在这个共享id中
    保存共用变量,是否就可达到?
      

  3.   

    session是保存在本地的,别人能共享吗?
      

  4.   

    保存本地的是id而已,可通过session_id函数设置使用的id
      

  5.   

    也就是让php中的session具有类似 asp application对象中全局变量的功能
      

  6.   

    干脆给个题目好了:
    用session来实现网站访问计数,只能用session保存该计数变量,
    不能用文件或数据库方式,是否可通过设置共享session实现?
      

  7.   

    通过session_id函数设置session的id相同。
    不过这样做以后,用户私有的的session就没有了。就是说:进程中只能有一个sessionidphp 没有与 asp application 等价的东西,但可以自行编程实现。可以利用改变session处理方式为user,用自己的程序来处理session,这样就可加入你所需要的内容了
      

  8.   

    xuzuning(唠叨) 说的是,但是不是可以同时使用共享和私有session呢?比如是否可以
    先通过session_id设置共享id,进行一些处理,然后释放,然后在打开session,简单流程如下:
    $privateID=session_id("SHARESESSIONID");//设置共享session,并保存私有id
    session_start();
    ......
    ......//进行一些处理$_SESSION = array();
    session_destroy();//释放
    session_id($privateID);设置私有session
    session_start();
    ......
      

  9.   

    如果你session_destroy();了。那么相应的session缓存就被清除了,又如何共享呢?
      

  10.   

    那就用 session_write_close函数代替好了
      

  11.   

    session本质上属于每一个session独有的,无法共享,所谓共享是通过其他方式纪录用户访问状态而已
      

  12.   

    大家看看这段代码,"独立"打开两个浏览器,输入同样的的url,显示-
    share counter:xxx
    private counter:yyy
    观察到share counter计数值在两个浏览器窗口的计数是共享关系(即一个窗口刷新会影响
    到另外一个窗口的计数),而private counter的计数是独立的(私有的),两个窗口独立计数.
    <?php
    ///////////share session and private session test,test.php
    ob_start();
    session_start();
    $privateID=session_id();
    session_write_close();session_id("SHARESESSIONID");
    session_start();
    if(isset($_SESSION['counter']))
    {
    $_SESSION['counter']++;
    echo "share counter:".$_SESSION['counter'];
    }
    else
    {
    $_SESSION['counter']=0;
    echo "share counter:".$_SESSION['counter'];
    }
    echo "<br>";
    session_write_close();session_id($privateID);
    session_start();
    if(isset($_SESSION['aaa']))
    {
    $_SESSION['aaa']++;
    $_SESSION['aaa']++;
    echo "private counter:".$_SESSION['aaa'];
    }
    else
    {
    $_SESSION['aaa']=0;
    echo "private counter:".$_SESSION['aaa'];
    }
    ?>
      

  13.   

    从以上的例子看,应该是可以共享session的,可同时使用私有session
    只是共享的session也会有个过期的问题,不知怎么解决才好?
      

  14.   

    认真看过你的程序后,基本明白了
    不过还是有点疑问session在我的印象中就是私有的,每个正常登陆的用户均有自己的session
    怎么可以共享呢??
    session_write_close改写后,session不是变了么?
      

  15.   

    实际上session不也就是一个文件吗,何不改变一下你的想法,自己写个类不就可以了吗?
    class Count{
        var $file = 'count.txt';
        var $count;
        function getTotal(){
            $this->count = file_get_contents($this->file);
            $this->count++;
            file_pub_contents($this->file,$this->count);
            $_SESSION['totle'] = $this->count;
        }
    }
    session_start();
    Count::getTotal();
      

  16.   

    感觉上hahawen(变态的大龄青年, 越来越变态,咋办啊)的方法比较好~~~不过可能还要处理文件读写冲突问题~~
      

  17.   

    简单,把session的handle指定为数据库,自己看看ipb的论坛数据库结构就明白了。session存入数据库就随便你怎么用了。
      

  18.   

    个人认为,用读写文件的方法的话,应该就没有必要用session了吧?
    我认为用session来保存公有变量,由服务器来处理,主要为了达到
    避免读写文件的目的,因为用文件来保存公有变量,如果访问量大了
    会容易丢失数据.