可以专门建一个表存session啊,很多论坛程序都是这么做的啊,楼主可以看看啊

解决方案 »

  1.   

    超时肯定丢失啦,很有可能代码有问题。Session写进数据库,还是要用到Session的(安全)
      

  2.   

    只是Session写到数据库的话可以节约资源。
      

  3.   

    数据库存放Session,怎么删除?
      

  4.   

    感觉容易超时 那可以修改PHP.ini的时间
    当然可以用数据库的哈,建立个临时表(Mysql里可以用heap类型的表)
    只时存放session-id等信息,可以看看session_handle()函数 -----好象是这个名字
      

  5.   

    session_set_save_handler()
    看看手册把
      

  6.   

    把session放入数据库? 我到没试过。
      

  7.   

    不是超时问题!我设的是当IE关闭才删除session,而且是有时丢失有时不丢失,页面跳转很快,也不会是超时!用数据库存就只存session的ID吗?具体变量值还是存临时文件夹下????
    有没有具体怎么做啊?教我一下!
      

  8.   

    使用ADODB吧,那里边就有session 到db 的类, 有说明的,很容易的.
      

  9.   

    这里提供一个类,里面用到了几个自定义函数,贴出来麻烦,看名字 能看出他的作用的<?php
    error_reporting(7);
    $SESS_LIFE = get_cfg_var("session.gc_maxlifetime");
    //$SESS_LIFE = 1440;
    //$SESS_LIFE = 300;function sess_open($save_path,$session_name) {
             sess_gc(0);
             return true;
    }function sess_close() {
             return true;
    }function sess_read($key) {         global $DB,$db_prefix,$session,$onlineuser;
             $session = $DB->fetch_one_array("SELECT * FROM ".$db_prefix."session WHERE sessionid='$key'");
             if (!empty($session) AND $session[expiry]>time()) {
                 return $session[value];
             } else {
                 $onlineuser++;
                 return "";
             }}function sess_write($key,$val) {
             global $DB,$db_prefix,$SESS_LIFE,$pauserinfo,$session;
             $expiry = time()+$SESS_LIFE;
             $value = addslashes($val);         $ipaddress = getip();
             $useragent = $_SERVER[HTTP_USER_AGENT];
             $REQUEST_URI = $_SERVER[REQUEST_URI];         if (empty($session) AND $key!=$session[key]) {
                 $query = $DB->query("INSERT INTO ".$db_prefix."session (sessionid,expiry,value,userid,ipaddress,useragent,location,lastactivity)
                                             VALUES ('$key',$expiry,'$value','$pauserinfo[userid]','".addslashes($ipaddress)."','".addslashes($useragent)."','".addslashes($REQUEST_URI)."','".time()."')");
            } else {
                 $query = $DB->query("UPDATE ".$db_prefix."session SET
                                             expiry='$expiry',
                                             userid='$pauserinfo[userid]',
                                             value='$value',
                                             ipaddress='".addslashes($ipaddress)."',
                                             useragent='".addslashes($useragent)."',
                                             location='".addslashes($REQUEST_URI)."',
                                             lastactivity='".time()."'
                                             WHERE sessionid='$key'");
            }
            if ($pauserinfo[userid]!=0) {
                if ((time()-$pnuserinfo[lastactivity])>$SESS_LIFE) {
                    $DB->query("UPDATE ".$db_prefix."user SET lastvisit=lastactivity,lastactivity='".time()."' WHERE userid='$pauserinfo[userid]'");
                } else {
                    $DB->query("UPDATE ".$db_prefix."user SET lastactivity='".time()."' WHERE userid='$pauserinfo[userid]'");
                }
            }
            return $query;
    }function sess_destroy($key) {
             global $DB,$db_prefix;
             return $DB->query("DELETE FROM ".$db_prefix."session WHERE sessionid='$key'");
    }function sess_gc($maxlifetime) {
             global $DB,$db_prefix;
             $query = $DB->query("DELETE FROM ".$db_prefix."session WHERE expiry<".time()."");
             return $DB->affected_rows();
    }session_set_save_handler(
            "sess_open",
            "sess_close",
            "sess_read",
            "sess_write",
            "sess_destroy",
            "sess_gc");@session_start();
    ?>
      

  10.   

    上面已经有人说了,看手册的session_set_save_handler()下面还是有人会说“具体怎么做啊”“有没有代码阿”“可不可以给各例子阿”“教教我啊”唉 !!!
      

  11.   

    http://www.howtodothings.com/showarticle.asp?article=372