IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

[MySQLi] Classe Session, problèmes Help !


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Par défaut [MySQLi] Classe Session, problèmes Help !
    Bonjour, je n'arrive pas à résoudre ce probleme, ma classe m'affiche ces erreurs, savez vous d'où ca pourrait venir?


    Warning: mysqli::query() [function.mysqli-query]: Couldn't fetch mysqli in /mnt/nfs1/home/ftp/socash.fr/public_html/include/session_config.php on line 64

    Warning: mysqli::query() [function.mysqli-query]: Couldn't fetch mysqli in /mnt/nfs1/home/ftp/socash.fr/public_html/include/session_config.php on line 77

    Warning: SQLSessionManager::gc() [function.SQLSessionManager-gc]: Couldn't fetch mysqli in /mnt/nfs1/home/ftp/socash.fr/public_html/include/session_config.php on line 78

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    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
    abstract class SessionManager 
    {
    	public $session_name;
    	public $lifeTime = 3600;
    	public $id;
    	public $db;
     
    	abstract public function open($savePath, $sessName);
    	abstract public function close();
    	abstract public function read($sessID);
    	abstract public function write($sessID,$sessData);
    	abstract public function destroy($sessID);
    	abstract public function gc($sessMaxLifeTime);    
     
    	public function __construct($mysqli) 
    	{
    		$this->db = $mysqli;
    		if (!session_set_save_handler(	array(&$this,'open'),
    										array(&$this,'close'),
    										array(&$this,'read'),
    										array(&$this,'write'),
    										array(&$this,'destroy'),
    										array(&$this,'gc') ) ) 
    		{
    			throw new Exception('Erreur lors de l\'init des sessions !');
    		}
    		session_start(); 
    	 }
    }
     
    class SQLSessionManager extends SessionManager 
    {
     	public function __destruct() 
    	{
         	session_write_close();
     	}
     
    	public function open($savePath, $sessName) 
    	{   
    		return true;
    	}
     
     	public function close() 
    	{
    		$this->gc(ini_get('session.gc_maxlifetime'));
    		unset($this->db);
      	}
     
     	public function read($sessID) 
    	{   
    		 $this->id = $sessID;
     
    		 $res = $this->db->query("SELECT data FROM session WHERE id = '".$sessID."' AND expires > '".time()."'");
     
    		 return ( ( $row = $res->fetch_row() ) !== FALSE ) ? $row[0] : ' ';
    	 }
     
    	 public function write($sessID,$sessData) 
    	 {
    		 $this->id = $sessID;
    		 $newExp = time() + $this->lifeTime;
     
    		 $res = $this->db->query("INSERT INTO session (id, data, expires) VALUES ('".$sessID."', '".$sessData."', '".$newExp."') ON DUPLICATE KEY UPDATE data = '".$sessData."', expires = '".$newExp."'");
     
    		 return TRUE;	 
    	 }
     
     	public function destroy($sessID) 
    	{
    		$res = $this->db->query("DELETE FROM session WHERE id = '".$sessID."'");
    		return ( $this->db->affected_rows === 1 ) ? TRUE : FALSE;
     	}
     
    	 public function gc($sessMaxLifeTime) 
    	 {
    		$res = $this->db->query("DELETE FROM session WHERE ( UNIX_TIMESTAMP(expires) - UNIX_TIMESTAMP(NOW()) ) > '".$sessMaxLifeTime."' ");
    		return $this->db->affected_rows;
    	} 
    }
     
    $session = new SQLSessionManager($link);
    merci de votre aide

  2. #2
    Membre chevronné
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Par défaut
    Vérifie les retours de tes requètes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->db->query('blabla') OR die('erreur sql');
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Sécurité] Classe Session réutilisable
    Par Amnesiak dans le forum Langage
    Réponses: 7
    Dernier message: 25/02/2011, 12h10
  2. Problème de Méthode sur la classe Session
    Par sniperseb dans le forum Hibernate
    Réponses: 2
    Dernier message: 04/01/2008, 16h48
  3. Classe clavier problème avec char
    Par benjiprog dans le forum Langage
    Réponses: 30
    Dernier message: 30/06/2006, 16h04
  4. [Sessions] Problème avec la fonction session_name()
    Par iomega dans le forum Langage
    Réponses: 5
    Dernier message: 06/10/2005, 15h24
  5. [DLL/classe template] problème de link
    Par Bob.Killer dans le forum C++
    Réponses: 7
    Dernier message: 31/08/2005, 18h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo