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()); } } |