Nema nikakve veze, osim sto sve skupa trosi resurse(memorijske).
Ok, logicno je da bude singleton. Evo neke moje klase(nije singleton) sto sam sklepao a prepusta manipulaciju sa sesijama bazi. Kako bi ti resio isti problem?
Code:
<?php
define('SESSION_TIME',21*60);
class Session{
/*
CREATE TABLE `sessions` (
`id` varchar(200) NOT NULL,
`time` int(10) unsigned,
`data` text,
`userid` int(11) int,
PRIMARY KEY (`id`),
KEY (`userid`)
);
*/
public static $server = '127.0.0.1';
public static $user = 'root';
public static $pass = '';
public static $db = 'sessions';
public static $magic_quotes;
private static $_sess_conn;
public static function init($sn=null,$un=null,$ps=null,$db=null){
ini_set('session.save_handler', 'user');
session_set_save_handler(
array('Session', 'open'),
array('Session', 'close'),
array('Session', 'read'),
array('Session', 'write'),
array('Session', 'destroy'),
array('Session', 'gc')
);
if (session_id() === "") session_start();
self::$magic_quotes = get_magic_quotes_gpc();
if ($sn != null){
self::$server = $sn;
}
if ($un != null){
self::$user = $un;
}
if ($ps != null){
self::$pass = $ps;
}
if ($db != null){
self::$db = $db;
}
}
public static function open(){
if ( self::$_sess_conn = mysql_connect( self::$server, self::$user, self::$pass ) ){
return mysql_select_db(self::$db, self::$_sess_conn);
}
return false;
}
public static function close(){
return mysql_close(self::$_sess_conn);
}
public static function read($id) {
$id = self::escape($id);
$sql = 'SELECT `data` FROM `sessions` WHERE id='.$id;
if ($result = mysql_query($sql, self::$_sess_conn) ) {
if (mysql_num_rows($result)) {
$record = mysql_fetch_assoc($result);
return $record['session_data'];
}
}
return null;
}
public static function toData($user){
if ($user->gid < 0){
$data->id = 0;
}
else{
$data->id = $user->id;
}
$data->data = serialize($user);
return $data;
}
public static function fromData(){
return unserialize($_SESSION['data']);
}
public static function write($id, $data){
$time = time();
$id = self::escape($id);
$data = self::toData($data);
$sql = 'REPLACE INTO `sessions` VALUES ('.$id.','.$time.','.$data->data.','.$data->id.')';
return mysql_query($sql, self::$_sess_conn);
}
public static function destroy($id) {
$id = self::escape($id);
$sql = 'DELETE FROM `sessions` WHERE id='.$id;
return mysql_query($sql, self::$_sess_conn);
}
public static function destroyAllUser($id) {
$sql = 'DELETE FROM `sessions` WHERE userid='.$id;
return mysql_query($sql, self::$_sess_conn);
}
public static function gc($max) {
$old = time() - SESSION_TIME;
$sql = 'DELETE FROM `sessions` WHERE time < '.$old;
return mysql_query($sql, self::$_sess_conn);
}
public static function escape( $text ){
if ( self::$magic_quotes ) {
$text = stripslashes( $text );
}
$text = mysql_real_escape_string( $text );
return '''.$text.''';
}
}
?>
"necu da budem hipster kao ovi arhitekti koji znaju svakom ime, sta je radio, gde zivi, gde mu je office, gde drzi predavanja i sl... I onda kada vidis neku gradjevinu prvi put treba da pogodis cija je na osnovu stila. Bljak!"