par
rolusseum » 19 déc. 2008, 14:18
Pas de problème, c'est un script que j'ai repris du site developpez.com
Mais, je ne pense pas que cela a un rapport avec la mise en bd des sessions, car j'avais le même problème, lorsque je n'utilisait pas de bd pour stocker les sessions et que cela se faisait par cookie via le répertoire temp.
[code]
<?php
session_set_save_handler('_open','_close','_read','_write','_destroy','_clean');
//connection a la base de donnees
function _open(){
global $_sess_db;
if ($_sess_db = mysql_connect('127.0.0.1', 'root', '')) {
return mysql_select_db('ma_base', $_sess_db);
}
return FALSE;
}
//deconnexion de la base de donnees
function _close(){
global $_sess_db;
return mysql_close($_sess_db);
}
//verifie si l'id session du user connecté correspond a l'id session enregistré
function _read($id){
global $_sess_db;
$id = mysql_real_escape_string($id);
$sql = "SELECT data FROM sessions WHERE id = '$id'";
if ($result = mysql_query($sql, $_sess_db)) {
if (mysql_num_rows($result)) {
$record = mysql_fetch_assoc($result);
return $record['data'];
}
}
return '';
}
function _write($id, $data){
global $_sess_db;
$access = time();
$id = mysql_real_escape_string($id);
$access = mysql_real_escape_string($access);
$data = mysql_real_escape_string($data);
$sql = "REPLACE INTO sessions VALUES ('$id', '$access', '$data')";
return mysql_query($sql, $_sess_db);
}
function _destroy($id){
global $_sess_db;
$id = mysql_real_escape_string($id);
$sql = "DELETE FROM sessions WHERE id = '$id'";
return mysql_query($sql, $_sess_db);
}
function _clean($max){
global $_sess_db;
$old = time() - $max;
$old = mysql_real_escape_string($old);
$sql = "DELETE FROM sessions WHERE access < '$old'";
return mysql_query($sql, $_sess_db);
}
?>
[/code]
Pas de problème, c'est un script que j'ai repris du site developpez.com
Mais, je ne pense pas que cela a un rapport avec la mise en bd des sessions, car j'avais le même problème, lorsque je n'utilisait pas de bd pour stocker les sessions et que cela se faisait par cookie via le répertoire temp.
[code]
<?php
session_set_save_handler('_open','_close','_read','_write','_destroy','_clean');
//connection a la base de donnees
function _open(){
global $_sess_db;
if ($_sess_db = mysql_connect('127.0.0.1', 'root', '')) {
return mysql_select_db('ma_base', $_sess_db);
}
return FALSE;
}
//deconnexion de la base de donnees
function _close(){
global $_sess_db;
return mysql_close($_sess_db);
}
//verifie si l'id session du user connecté correspond a l'id session enregistré
function _read($id){
global $_sess_db;
$id = mysql_real_escape_string($id);
$sql = "SELECT data FROM sessions WHERE id = '$id'";
if ($result = mysql_query($sql, $_sess_db)) {
if (mysql_num_rows($result)) {
$record = mysql_fetch_assoc($result);
return $record['data'];
}
}
return '';
}
function _write($id, $data){
global $_sess_db;
$access = time();
$id = mysql_real_escape_string($id);
$access = mysql_real_escape_string($access);
$data = mysql_real_escape_string($data);
$sql = "REPLACE INTO sessions VALUES ('$id', '$access', '$data')";
return mysql_query($sql, $_sess_db);
}
function _destroy($id){
global $_sess_db;
$id = mysql_real_escape_string($id);
$sql = "DELETE FROM sessions WHERE id = '$id'";
return mysql_query($sql, $_sess_db);
}
function _clean($max){
global $_sess_db;
$old = time() - $max;
$old = mysql_real_escape_string($old);
$sql = "DELETE FROM sessions WHERE access < '$old'";
return mysql_query($sql, $_sess_db);
}
?>
[/code]