salve ragazzi ho un problemone , dovrei riuscire a salvare le sessioni degli user in un databae , cioe l id di sessione il tempo , adesso avrei trovato una classe ma non so come farla funzionare posto la classe :
Codice PHP:
class session {
// session-lifetime
var $lifeTime;
// mysql-handle
var $dbHandle;
function open($savePath, $sessName) {
// get session-lifetime
$this->lifeTime = get_cfg_var("session.gc_maxlifetime");
// open database-connection
$dbHandle = @mysql_connect("localhost","root","maurizio");
$dbSel = @mysql_select_db("supp",$dbHandle);
// return success
if(!$dbHandle or !$dbSel)
return false;
$this->dbHandle = $dbHandle;
return true;
}
function close() {
$this->gc(ini_get('session.gc_maxlifetime'));
// close database-connection
return @mysql_close($this->dbHandle);
}
function read($sessID) {
// fetch session-data
$res = mysql_query("SELECT session_data AS d FROM sessions
WHERE session_id = '$sessID'
AND session_expires > ".time(),$this->dbHandle);
// return data or an empty string at failure
if($row = @mysql_fetch_assoc($res))
return $row['d'];
return "";
}
function write($sessID,$sessData) {
// new session-expire-time
$newExp = time() + $this->lifeTime;
// is a session with this id in the database?
$res = mysql_query("SELECT * FROM sessions
WHERE session_id = '$sessID'",$this->dbHandle);
// if yes,
if(@mysql_num_rows($res)) {
// ...update session-data
mysql_query("UPDATE sessions
SET session_expires = '$newExp',
session_data = '$sessData'
WHERE session_id = '$sessID'",$this->dbHandle);
// if something happened, return true
if(mysql_affected_rows($this->dbHandle))
return true;
}
// if no session-data was found,
else {
// create a new row
mysql_query("INSERT INTO sessions (
session_id,
session_expires,
session_data)
VALUES(
'$sessID',
'$newExp',
'$sessData')",$this->dbHandle);
// if row was created, return true
if(mysql_affected_rows($this->dbHandle))
return true;
}
// an unknown error occured
return false;
}
function destroy($sessID) {
// delete session-data
mysql_query("DELETE FROM sessions WHERE session_id = '$sessID'",$this->dbHandle);
// if session was deleted, return true,
if(mysql_affected_rows($this->dbHandle))
return true;
// ...else return false
return false;
}
function gc($sessMaxLifeTime) {
// delete old sessions
@mysql_query("DELETE FROM sessions WHERE session_expires < ".time(),$this->dbHandle);
// return affected rows
return @mysql_affected_rows($this->dbHandle);
}
}
// imposto la scadenza delle sessioni a 20 minuti
ini_set('session.gc_maxlifetime',20*60);
// imposto la probabilità di avvio del garbage collector al 50%
ini_set('session.gc_probability',50);
ini_set('session.gc_divisor',100);
@ini_set('session.save_handler', 'user');
$session = new session();
session_set_save_handler(array(&$session,"open"),
array(&$session,"close"),
array(&$session,"read"),
array(&$session,"write"),
array(&$session,"destroy"),
array(&$session,"gc"));
session_start();
$_SESSION['user_login'];
$_SESSION['pass_password'];
session_id(); ?>
e questo e il controllo che faccio al lgin :
Codice PHP:
if(!file_exists("../config/config.php")){
die("<div>il files config.php non e presente");
}
else{
require_once("../config/config.php");
}
require_once("../include/funzion.php");
session_start();
$_SESSION['areaprivata_login'];
$_SESSION['areaprivata_password'];
if(!isset($_POST['action'])){$action="";}else{$action = $_POST['action'];}
if(!isset($_POST['login'])){$login="";}else{$login = trim(addslashes($_POST['login']));}
if(!isset($_POST['pass'])){$pass="";}else{$pass = trim(addslashes($_POST['pass']));}
if(isset($_POST['action'])=="control_administrator"){
$pass_cript = criptpass($pass);
$DB = new DB;
$DB->connect();
$controllo_Staff = mysql_query("SELECT *
FROM `staff`
WHERE `nick` ='$login'
AND `pass` = '$pass_cript'
AND `stato` = 1
AND `tipo` = 2
OR `tipo` = 3
OR `tipo` = 4
LIMIT 0 , 1");
if(@mysql_num_rows($controllo_Staff)== 1){
session_start();
$_SESSION['areaprivata_login']=$login;
$_SESSION['areaprivata_password']=$pass_cript;
echo"[img]immagini/loading_bar.gif[/img]<meta http-equiv=\"Refresh\" content=\"3; URL=index.php\">Login effettuato correttamente . <a href=index.php>Clicca qui per entrare</a>";
}else{
echo "<meta http-equiv=\"Refresh\" content=\"3; URL=index.php\">Login o password incorretti . Torna all' Home Page<a href=index.php>Premi qui per riprovare</a>";
}
}