Hi!
No I'm not using cookies, turned it of
from php.ini.
Here's also my code: two files
frist sesstest.php and sess.inc, and
also the sql for the table I use in
PostgreSQL. So the problem is, each
time a new session id is created...
SQL
CREATE TABLE phpsess (
sessid text PRIMARY KEY,
sessdata text
);
no timestap for expiry on purpose.
also have create a phpsessuser and
rights to access the table properly
A new sessid is always inserted.
sesstest.php
include_once("sess.inc");
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
echo $_SESSION['count'];
sess.inc
function sess_open ($save_path, $session_name) {
return(true);
}
function sess_close() {
return(true);
}
function sess_read ($id) {
$cnnstr = "host=localhost port=5432 dbname=plm user=phpsessuser password=phpsessions";
$pgcnn = pg_connect($cnnstr);
if ($pgcnn) {
$rs = pg_query($pgcnn, "SELECT sessid, sessdata FROM phpsess WHERE sessid='$id'");
if (pg_num_rows($rs) > 0) {
$ars = pg_fetch_array($rs, 1, PGSQL_ASSOC);
return($ars["sessdata"]);
} else {
return("");
}
pg_close($pgcnn);
} else {
return("");
}
}
function sess_write ($id, $sess_data) {
$cnnstr = "host=localhost port=5432 dbname=plm user=phpsessuser password=phpsessions";
$pgcnn = pg_connect($cnnstr);
if ($pgcnn) {
$rs = pg_query($pgcnn, "SELECT sessid, sessdata FROM phpsess WHERE sessid='$id'");
if (pg_num_rows($rs) >= 1) {
pg_query($pgcnn, "UPDATE phpsess SET sessdata='$sess_data' WHERE sessid='$id'");
} else {
pg_query($pgcnn, "INSERT INTO phpsess (sessid, sessdata) values('$id', '$sess_data')");
}
pg_close($pgcnn);
return(true);
} else {
return(false);
}
}
function sess_destroy ($id) {
$cnnstr = "host=localhost port=5432 dbname=plm user=phpsessuser password=phpsessions";
$pgcnn = pg_connect($cnnstr);
if ($pgcnn) {
pg_query($pgcnn, "DELETE FROM phpsess WHERE sessid='$id'");
pg_close($pgcnn);
return(true);
} else {
return(false);
}
}
function sess_gc ($maxlifetime) {
return true;
}
session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");
Regards,
Iges