note 36783 added to function.session-set-save-handler
| From: | andrew at netrux dot com | Date: | Wed, 22 Oct 2003 10:15:48 +0000 |
| Subject: | note 36783 added to function.session-set-save-handler | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-59110@lists.php.net to get a copy of this message | ||
For those interested in a postgresql version. Seems to work but dont come crying to me when it eats
your pistachio nuts!
<?
Derived from php file version on website, changes copyright andrew@netrux.com.
/*
create table sessions(
sessionid char(255) primary key not null,
lastupdated timestamp not null,
datavalue text);
*/
function open ($save_path, $session_name) {
$sess_conn=pg_connect("host=localhost dbname= user=postgres")
or die ("PostgreSQL error: --> " . pg_last_error($sess_conn));
return(true);
}
function close() {
return(true);
}
function read ($id) {
$result=pg_query("select * from sessions where sessionid = '$id'")
or die ("PostgreSQL error: --> " . pg_last_error($sess_conn));
if (pg_num_rows($result)==1) {
$row=pg_fetch_array($result);
return($row[2]);
} else {
return("");
}
}
function write ($id, $sess_data) {
pg_query("delete from sessions where sessionid = '$id'")
or die ("PostgreSQL error: --> " . pg_last_error($sess_conn));
pg_query("insert into sessions(sessionid,lastupdated,datavalue)
values('$id','now'::timestamp,'$sess_data')")
or die ("PostgreSQL error: --> " . pg_last_error($sess_conn));
return(true);
}
function destroy ($id) {
pg_query("delete from sessions where sessionid = '$id'")
or die ("PostgreSQL error: --> " . pg_last_error($sess_conn));
pg_close($sess_conn);
return(true);
}
/*********************************************
* WARNING - You will need to implement some *
* sort of garbage collection routine here. *
*********************************************/
function gc ($maxlifetime) {
return true;
}
session_set_save_handler ("open", "close", "read", "write",
"destroy", "gc");
?>
----
Manual Page -- http://www.php.net/manual/en/function.session-set-save-handler.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+36783
Delete -- http://master.php.net/manage/user-notes.php?action=delete+36783&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+36783&report=yes
Search -- http://master.php.net/manage/user-notes.php