# along with wfpl; if not, write to the Free Software Foundation, Inc., 51
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-# you'll need this file that calles db_connect()
+# you'll need this file that calls db_connect()
if(!isset($GLOBALS['wfpl_db_handle'])) {
- if(file_exists('db_connect.php') {
+ if(file_exists('db_connect.php')) {
require_once('db_connect.php');
- } elseif(file_exists('code/db_connect.php') {
+ } elseif(file_exists('code/db_connect.php')) {
require_once('code/db_connect.php');
} else {
die("session.php requires a file db_connect.php or that you call db_connect() first. See code/wfpl/db.php for more information.");
# and these database tables:
# create table wfpl_sessions (id int unique auto_increment, session_key varchar(16), length int, expires int);
# create table wfpl_session_data (id int unique auto_increment, session_id int, name varchar(100), value text);
+# run this command to install/clear the tables:
+# mysql DATABASE_NAME < code/wfpl/examples/session.sql
+# note: you may need these parameters for mysql: -u USERNAME -p
# GLOSSARY
#
# generate a new random 16-character string
function session_generate_key() {
- $character_set = "abcdefghijklmnopqrstuvwqyzABCDEFGHIJKLMNOPQRSTUVWQYZ0123456789";
+ $character_set = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$id = " ";
# PHP 4.2.0 and up seed the random number generator for you.
$GLOBALS['session_key'] = $session_key;
$_REQUEST['session_key'] = $session_key; #just in case someone calls session_exists() after session_new()
session_touch($length);
+ return $GLOBALS['session_key'];
}
# call to renew the timeout for the session.
# delete expired sessions from database
function session_purge_old() {
$now = time();
- $exired_sessions = db_get_column('wfpl_sessions', 'id', 'where expires < %i', $now);
+ $expired_sessions = db_get_column('wfpl_sessions', 'id', 'where expires < %i', $now);
if($expired_sessions) foreach($expired_sessions as $expired_session) {
_kill_session($expired_session);
}
return false;
}
+ if(isset($GLOBALS['session_id'])) {
+ return true;
+ }
+
$session_key = ereg_replace('[^a-zA-Z0-9]', '', $_REQUEST['session_key']);
if(!strlen($session_key) == 16) {
# save a variable into the session
function session_set($name, $value) {
- session_unset($name);
+ session_clear($name);
db_insert('wfpl_session_data', 'session_id,name,value', $GLOBALS['session_id'], $name, $value);
}
# remove variable from the session
-function session_unset($name) {
+function session_clear($name) {
db_delete('wfpl_session_data', 'where session_id=%i && name=%"', $GLOBALS['session_id'], $name);
}