I am trying to set up a session setup that saves session data to a mysql database.
I have gone into php.ini and set session.save_handler to user.
I call the following include file up using session_set_save_handler("open", "close",
"read", "write", "destroy", "gc");
(of course I have labeled each function correctly as they appear in my include file,
just too lazy to write it all out here).
When I run the page this is on, I get a parse error at the line where function
session_open is in the include file (see below)
Any idea why? Thanks
I am modeling this word for word from a example found at:
http://www.onlamp.com/pub/a/php/2001/05/10/sessions.html?page=1 (pages 1
thru 3)
my session include file:
<?
// Session Table
$sess_table = "Sessions";
// Retrieve the session maximum lifetime (found in php.ini)
$lifetime = get_cfg_var("session.gc_maxlifetime");
//=============
// function: mysql_session_open()
// purpose: Opens a persistent server connection and selects
the
// database.
//=============
mysql_session_open($session_path, $session_name) { // parse
error on this line;
mysql_pconnect("localhost", "mysql_username", "mysql_password")
or die("Can't connect to MySQL server! ");
mysql_select_db("sessions_database")
or die("Can't select MySQL sessions database");
} // end mysql_session_open()
//=============
// function: mysql_session_close()
// purpose: Doesn't actually do anything since the server
connection is
// persistent. Keep in mind that although this function
// doesn't do anything in my particular implementation, I
// still must define it.
//=============
mysql_session_close() {
return 1;
} // end mysql_session_close()
//=============
// function: mysql_session_select()
// purpose: Reads the session data from the database
//=============
mysql_session_select($SID) {
GLOBAL $sess_db;
GLOBAL $sess_table;
$query = "SELECT value FROM $sess_table
WHERE SID = '$SID' AND
expiration > ". time();
$result = mysql_query($query);
} // end mysql_session_select()
//=============
// function: mysql_session_write()
// purpose: This function writes the session data to the
database. If that SID // already exists, then the existing
data will be updated.
//=============
mysql_session_write($SID, $value) {
GLOBAL $sess_db;
GLOBAL $sess_table;
GLOBAL $lifetime;
$expiration = time() + $lifetime;
$query = "INSERT INTO $sess_table
VALUES('$SID', '$expiration', '$value')";
$result = mysql_query($query, $sess_db);
if (! $result) :
$query = "UPDATE $sess_table SET
expiration = '$expiration',
value = '$value' WHERE
SID = '$SID' AND expiration >". time();
$result = mysql_query($query, $sess_db);
endif;
} // end mysql_session_write()
//=============
// function: mysql_session_destroy()
// purpose: deletes all session information having input SID
(only one row)
//=============
mysql_session_destroy($sessionID) {
GLOBAL $sess_table;
$query = "DELETE FROM $sess_table
WHERE SID = '$sessionID'";
$result = mysql_query($query);
} // end mysql_session_destroy()
//=============
// function: mysql_session_garbage_collect()
// purpose: deletes all sessions that have expired.
//=============
mysql_session_garbage_collect($lifetime) {
GLOBAL $sess_table;
$query = "DELETE FROM $sess_table
WHERE sess_expiration < ".time() - $lifetime;
$result = mysql_query($query);
return mysql_affected_rows($result);
} // end mysql_session_garbage_collect()
?>