ID:               19004
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           No Feedback
 Bug Type:         Session related
 Operating System: Windows, IIS
 PHP Version:      4.2.2
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php4-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-latest.zip




Previous Comments:
------------------------------------------------------------------------

[2002-08-21 01:28:00] [EMAIL PROTECTED]

I've tried http://snaps.php.net/win32/php4-win32-latest.zip just now,
this problem persists.

------------------------------------------------------------------------

[2002-08-21 00:57:23] [EMAIL PROTECTED]

sorry, that was a typo, I actually mean I didn't. From the abstract of
my settings listed that's Off indeed.

------------------------------------------------------------------------

[2002-08-20 21:35:53] [EMAIL PROTECTED]

And btw: We do NOT recommend to turn register_globals=on...


------------------------------------------------------------------------

[2002-08-20 21:35:19] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php4-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-latest.zip

------------------------------------------------------------------------

[2002-08-20 18:41:13] [EMAIL PROTECTED]

register_globals = Off

[Session]
session.save_handler = user
session.save_path = /tmp
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_maxlifetime = 1440
session.referer_check =
session.entropy_length = 0
session.entropy_file =
;session.entropy_length = 16
;session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 1
url_rewriter.tags =
"a=href,area=href,frame=src,input=src,form=fakeentry"

I'm trying to use my own session handle functions, which basically
stores information into mysql database. Since I did turn on
register_globals as recommended, I have to use $_SESSION["foo"]="bar"
to register a session variable. The session starts and reads soundly,
but it never registers the variable in this way, seems the write
function hasn't been called when we declare $_SESSION["foo"]="bar".

However if we force a session_register(), the variable can be written
and read on the following pages by accessing the variable $_SESSION.

Note: when I'm on session.save_handler = files, $_SESSION["foo"]="bar"
will simply register the varible to the session file stored.

Here's a paste of my handler functions:
function myopen ($mys_table, $mys_name) {
        global $mysession;
        $mysession['table'] = $mys_table;
        $mysession['name'] = $mys_name;
        return true;
}

function myclose() {
        global $mysession;
        unset($mysession);
        return true;
}

function myread ($id) {
        global $mysession;
        $sql="SELECT data FROM ".$mysession['table']." WHERE sid='".$id."'";
        $result=@mysql_query($sql);
        $data=@mysql_result($result,0,"data");
        if (strlen($data)>0) {
                $la=time();
                $sql="UPDATE ".$mysession['table']."SET lastact='".$la."' WHERE
sid='".$id."'";
        }
        return $data;
}

function mywrite ($id, $data) {
        global $mysession;
        echo "write".$data."<br>";
//destory history data before write
        $dsql="DELETE FROM ".$mysession['table']." WHERE sid='".$id."'";
        @mysql_query($dsql);
//write new data
        $la=time();
        $wsql="INSERT INTO ".$mysession['table']." (sid,data,lastact) VALUES
('".$id."','".addslashes($data)."','".$la."')";
        @mysql_query($wsql);
        return true;
}

function mydestroy ($id) {
        global $mysession;
        $sql="DELETE FROM ".$mysession['table']." WHERE sid='".$id."'";
        $result=@mysql_query($sql);
        return true;
}

function mygc ($maxlifetime) {
        global $mysession;
        $limitime=time()-$maxlifetime;
        $sql="DELETE FROM ".$mysession['table']." WHERE
lastact<'".$limitime."'";
        @mysql_query($sql);
        return true;
}

//save_path is the SQL table name
session_save_path("mysession");

//customize the session handler
session_set_save_handler ("myopen", "myclose", "myread", "mywrite",
"mydestroy", "mygc");

//session start
session_start();

Has anyone got a solution to this problem, I mean if there's an
alternative way of coding the handle function for this issue. Or this
is simply a php bug?


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=19004&edit=1

Reply via email to