Navigation
Artikel
Stuff
RSS Feeds
|
Sourcecodes - Sessionverwaltung über MySQLSprachenübersicht/PHP Keywords: php sessions mysql InhaltsverzeichnisCode Top
Code: $salt = 'salzig'; ini_set('session.use_only_cookies', '1'); session_set_save_handler('_open','_close','_read','_write','_destroy','_clean'); function _open() { global $conn; global $salt; if ( ($conn = mysql_connect($mysql_host, $mysql_user, $mysql_passwort)) && mysql_select_db($mysql_datenbank, $conn) ) { if ( $id = session_id() ) { $id = mysql_real_escape_string($id, $conn); $ipagent = ''; if ( mysql_num_rows( $query = mysql_query("SELECT `ipagent` FROM `user_sessions` WHERE `id` = '{$id}'", $conn) ) ) $ipagent = mysql_result($query,0); if ( $ipagent != md5($salt.$_SERVER['HTTP_USER_AGENT']) ) session_regenerate_id(); } } else return FALSE; } function _close() { global $conn; return mysql_close($conn); } function _read($id) { global $conn; $id = mysql_real_escape_string($id, $conn); if ( mysql_num_rows( $query = mysql_query("SELECT `data` FROM `user_sessions` WHERE `id` = '{$id}'", $conn)) ) return mysql_result($query, 0); return ''; } function _write($id, $data) { global $conn; global $salt; $access = mysql_real_escape_string(time(), $conn); $id = mysql_real_escape_string($id, $conn); $data = mysql_real_escape_string($data, $conn); $ipagent = mysql_real_escape_string(md5($salt.$_SERVER['HTTP_USER_AGENT']), $conn); return mysql_query("REPLACE INTO `user_sessions` (`id`,`access`,`data`,`ipagent`) VALUES ('{$id}','{$access}','{$data}','{$ipagent}')", $conn); } function _destroy($id) { global $conn; $id = mysql_real_escape_string($id, $conn); return mysql_query("DELETE FROM `user_sessions` WHERE `id` = '{$id}'", $conn); } function _clean($max) { global $conn; $max = mysql_real_escape_string(time() - $max, $conn); return mysql_query("DELETE FROM `user_sessions` WHERE `access` < '{$max}'", $conn); }
MySQL-DB: CREATE TABLE `user_sessions` ( `id` varchar(32) NOT NULL default '', `access` int(10) unsigned default NULL, `data` text default NULL, `ipagent` varchar(32) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM;
MySQL-DB: CREATE TABLE `user_sessions` ( `id` varchar(32) NOT NULL default '', `access` int(10) unsigned default NULL, `data` varchar(1024) default NULL, `ipagent` varchar(32) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MEMORY;
Optimierung Top
Weblinks TopEdit Top
Achtung! Top
Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren? Sprachenübersicht/PHP/Sessionverwaltung über MySQL |