Having problems with user defined sessions using postgresql as mysession manager
am 14.09.2006 15:52:49 von Richmond Dyes
I have written user defined session management library in php using
postgresql as my session repository. When I let my session timeout on
my browser I get the below errors on my screen.
Warning: pg_query(): Query failed: ERROR: duplicate key
violates unique constraint "li_session_pkey" in /var/www/html/liberty/includes/session.php
on line 31
Fatal error: Call to undefined function: pg_error() in /var/www/html/liberty/includes/session.php
on line 31
Warning: Unknown(): A session is active. You cannot change the
session module's ini settings at this time. in Unknown on line 0
The problem is in the write function of my library. Here it is:
function pg_session_write($sid, $val) {
$life = get_cfg_var("session.gc_maxlifetime");
$exp = time() + $life;
$selQ = "SELECT sidid FROM li_session
WHERE sidid = '$sid' AND exptime >". time();
$selR= pg_query($selQ)or die("It didn't work:". pg_error());
if(pg_num_rows($selR)) {
$sesupQ ="UPDATE li_session SET
exptime = '$exp', vidval = '$val'
WHERE
sidid = '$sid' and exptime >". time();
$sesupR=pg_query($sesupQ) or die("It didn't work:". pg_error());
} else {
$sesinQ = "INSERT INTO li_session
VALUES('$sid', '$val', '$exp')";
$sesinR= pg_query($sesinQ) or die("It didn't work:".
pg_error());
}
}