| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 
 |  
<?php
/***************************************************************************
*  description: gestion des sessions par la bdd
*                            -------------------
*   copyright        : F_D_V copyright creative commmon cc by-no :
*                     pas d'utilisation commerciale autorisée, droit de modification, l'auteur doit être cité
*                     pour plus d'information http://creativecommons.org/licenses/by-nc/2.0/fr/
****************************************************************************/
class Session
{
	public $session_time = 7200;//2 heures
	public $session = array();
 
 
	public function __construct($sql_host, $sql_user, $sql_password, $sql_db)
	{
		$this->host = $sql_host;
		$this->user = $sql_user;
		$this->password = $sql_password;
		$this->dba = $sql_db;
	}
 
	public function open ()//pour l'ouverture
	{
		$this->connect = mysql_connect($this->host, $this->user, $this->password,1);//on se connecte a la bdd
		$bdd = mysql_select_db($this->dba,$this->connect);//on sélectionne la base de données
 
		$this->gc();//on appelle la fonction gc		
		return $bdd;//true ou false selon la réussite ou non de la connexion à la bdd
	}
 
	public function read ($sid)//lecture
	{
                $sid = mysql_real_escape_string($sid,$this->connect);
		$sql = "SELECT sess_datas FROM sess_table
				WHERE sess_id = '$sid' ";
 
		$query = mysql_query($sql,$this->connect) or exit(mysql_error());	
		$data = mysql_fetch_array($query);
 
		if(empty($data)) return FALSE;
		else return $data['sess_datas'];//on retourne la valeur de sess_datas
	}
 
	public function write ($sid, $data)//écriture
	{
		$expire = intval(time() + $this->session_time);//calcul de l'expiration de la session
		$data = mysql_real_escape_string($data,$this->connect);//si on veut stocker du code sql 
 
		$sql = "SELECT COUNT(sess_id) AS total
			FROM SESS_TABLE
			WHERE sess_id = '$sid' ";
 
		$query = mysql_query($sql,$this->connect) or exit(mysql_error());
		$return = mysql_fetch_array($query);
		if($return['total'] == 0)//si la session n'existe pas encore
		{
			$sql = "INSERT INTO SESS_TABLE
				VALUES('$sid','$data','$expire')";//alors on la crée
 
		}
		else//sinon
		{
			$sql = "UPDATE SESS_TABLE
				SET sess_datas = '$data',
				sess_expire = '$expire'
				WHERE sess_id = '$sid' ";//on la modifie
		}		
		$query = mysql_query($sql,$this->connect) or exit(mysql_error());
 
		return $query;
	}
 
	public function close()//fermeture
	{
		mysql_close($this->connect);//on ferme la bdd
	}
 
	public function destroy ($sid)//destruction
	{
		$sql = "DELETE FROM SESS_TABLE WHERE sess_id = '$sid' ";//on supprime la session de la bdd
		$query = mysql_query($sql,$this->connect) or exit(mysql_error());
		return $query;
	}
 
	public function gc ()//nettoyage
	{
		$sql = "DELETE FROM sess_table
				WHERE sess_expire < ".time(); //on supprime les vieilles sessions 
 
		$query = mysql_query($sql,$this->connect) or exit(mysql_error());
 
		return $query;
	}
}//fin de la classe
?> | 
Partager