[PHP] Problème de session
Résolu/Fermé
A voir également:
- [PHP] Problème de session
- Easy php - Télécharger - Divers Web & Internet
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? ✓ - Forum Windows 7
- Retour a la ligne php ✓ - Forum PHP
- Gmail ouverture de session ✓ - Forum Gmail
23 réponses
Je vien de trouvé, pour ceux qui recherche, les données de type ressource ne peuvent pas être stocker dans des variable session chez 1&1, il faut utiliser un
Bon ce n'est pas tout mais j'ai encore pas mal de taf... maudit 1&1.
mysql_pconnectpour récuperer l'ancienne connection...
Bon ce n'est pas tout mais j'ai encore pas mal de taf... maudit 1&1.
gigaga
Messages postés
2347
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
22 août 2014
301
18 oct. 2009 à 20:38
18 oct. 2009 à 20:38
Vérifie que le répertoire des sessions sur le serveur existe bien et est accessible en écriture et lecture.
Le répertoire est spécifié par la variable session.save_path dans le fichier the php.ini.
Le répertoire est spécifié par la variable session.save_path dans le fichier the php.ini.
Les sessions marchent, car quand je fait $_SESSION['test'] = "toto"; et que je change de page, elle reste en mémoire.
sa m'affiche sa la première fois
Sql Object ( [conn:private] => Resource id #12 )
puis
Sql Object ( [conn:private] => 0 )
la seconde fois et les suivante... là je planche serieux sur ce problème
sa m'affiche sa la première fois
Sql Object ( [conn:private] => Resource id #12 )
puis
Sql Object ( [conn:private] => 0 )
la seconde fois et les suivante... là je planche serieux sur ce problème
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
18 oct. 2009 à 20:50
18 oct. 2009 à 20:50
une reponse toute bete a tu bien mis ton session_start sur toute tes pages ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gigaga
Messages postés
2347
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
22 août 2014
301
18 oct. 2009 à 20:52
18 oct. 2009 à 20:52
Tu n'as pas loupé d'éventuels messages d'erreur? error_reporting(E_ALL);?
Malheuresement oui ... lol
Peut être une info qui peut servir : Hebergement 1&1
J'ai déjà renomer mes variables session et toujours rien.
Peut être une info qui peut servir : Hebergement 1&1
J'ai déjà renomer mes variables session et toujours rien.
gigaga
Messages postés
2347
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
22 août 2014
301
18 oct. 2009 à 20:55
18 oct. 2009 à 20:55
En fait, je te conseillerai de serialiser ton objet avant de mettre en session :
$_SESSION['sql'] = serialize(new Sql());
et que tu récupère en déserialisant :
print_r(unserialize($_SESSION['sql']));
$_SESSION['sql'] = serialize(new Sql());
et que tu récupère en déserialisant :
print_r(unserialize($_SESSION['sql']));
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
18 oct. 2009 à 21:01
18 oct. 2009 à 21:01
pour moi c'est qu'a partir d'un moment tu n'a plus de session (session_start absent ) regarde au niveau de tes includes.
J'ai test la serialisation mais sa ne vien pas de la, je perd même mon Sql lors de la première connexion au site.
Sql Object ( [conn:private] => 0 )
Sujet à s'arracher les cheveux...
Sql Object ( [conn:private] => 0 )
Sujet à s'arracher les cheveux...
je vien de test
print_r($_SESSION['test']); s'affiche bien
mais print_r($_SESSION['session_sql']); toujours pas lors d'un changement, rechargement de page...
require_once UTIL_PATH.'/sql.class.php'; require_once CLASS_PATH.'/compte.class.php'; session_start(); // Instance de Sql if (!isset ($_SESSION['test'])) $_SESSION['test'] = "toto"; // Instance de Sql if (!isset ($_SESSION['session_sql'])) $_SESSION['session_sql'] = new Sql(); // Instance de compte if(!isset ($_SESSION['compte'])) $_SESSION['compte'] = new Compte(); print_r($_SESSION['session_sql']); echo "<br/>"; print_r($_SESSION['test']);
print_r($_SESSION['test']); s'affiche bien
mais print_r($_SESSION['session_sql']); toujours pas lors d'un changement, rechargement de page...
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
18 oct. 2009 à 21:14
18 oct. 2009 à 21:14
j'en revien avec mon session start
tu met
essaye comme ca
tu met
require_once UTIL_PATH.'/sql.class.php'; require_once CLASS_PATH.'/compte.class.php'; session_start();
essaye comme ca
session_start(); require_once UTIL_PATH.'/sql.class.php'; require_once CLASS_PATH.'/compte.class.php';
Même pas la peine de tester ce genre de chose, je vais me taper une erreur car php ne connait pas encore les classes pour lesquelle je tente de récupperer les informations (__PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => Sql [conn:private] => 0 )). Voila pour te le prouver ^^.
J'ai tester de commenter tout le reste de mon code sauf cette partie et toujour rien.
sa donne
Les xxx sont déclarer autrement => cf real_path()
J'ai tester de commenter tout le reste de mon code sauf cette partie et toujour rien.
sa donne
require_once '/homepages/xx/xxxxxxxx/htdocs/xxxxx/utilitaire/sql.class.php'; session_start(); if (!isset ($_SESSION['session_sql'])) $_SESSION['session_sql'] = new Sql(); print_r($_SESSION['session_sql']);
Les xxx sont déclarer autrement => cf real_path()
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
18 oct. 2009 à 21:29
18 oct. 2009 à 21:29
oula c'est pas banal ton pb..
donc resumons tu appelle tes caless avec
UTIL_PATH.'/sql.class.php' et CLASS_PATH.'/compte.class.php'
et apres tu n'a plus de session si j'ai bien compris.
c'est quoi exactement le script d'une de tes pages qui perd la session
donc resumons tu appelle tes caless avec
UTIL_PATH.'/sql.class.php' et CLASS_PATH.'/compte.class.php'
et apres tu n'a plus de session si j'ai bien compris.
c'est quoi exactement le script d'une de tes pages qui perd la session
Sur mon site j'ai adopter une arborescence assé pousser UTIL_PATH pour les classes utilitaire (celle qui n'ont pas besoin de connection à SQL sauf sql.class.php .
Exemple mail.class.php qui vérifie synthaxe, validité de l'adresse mail )
et CLASS_PATH pour les classes normales nécessitant une alteration de la BDD
Le script étant ceux que j'ai déjà mis sur le ce site soit
rien de plus, rien de moin.
pour le fichier sql.class.php
Rien de plus simple...
Exemple mail.class.php qui vérifie synthaxe, validité de l'adresse mail )
et CLASS_PATH pour les classes normales nécessitant une alteration de la BDD
Le script étant ceux que j'ai déjà mis sur le ce site soit
require_once '/homepages/15/d283516940/htdocs/itolome/utilitaire/sql.class.php'; session_start(); if (!isset ($_SESSION['session_sql'])) $_SESSION['session_sql'] = new Sql(); print_r($_SESSION['session_sql']);
rien de plus, rien de moin.
pour le fichier sql.class.php
<?php class Sql{ private $conn; /** Constructeur par défaut */ public function __construct(){ $this->conn = @mysql_connect(HOST, USER, PWD) OR DIE ("Impossible de se connecter."); @mysql_select_db (DB_NAME, $this->conn) OR DIE ("Base innexistante."); } /** Représentation toString de l'objet */ public function __toString(){ return "".$this->conn; } /** Interroge la BDD */ public function query($requete){ $res = @mysql_query ($requete, $this->conn); //OR DIE ("Une opération inconnu vien de se produire."); return $res; } /** Retourne sous forme de tableau la requête */ public function fetch_array($result){ $ret = @mysql_fetch_array($result, MYSQL_ASSOC) OR DIE ("Une opération inconnu vien de se produire."); return $ret; } /** Retourne l'ID de la dernière insertion SQL */ public function get_insert_id(){ $ret = @mysql_insert_id($this->conn) OR DIE ("Une opération inconnu vien de se produire."); return $ret; } /** Renvoi le nombre de tuple de la requête */ public function get_num_rows($result){ $ret = @mysql_num_rows($result) OR DIE ("Une opération inconnu vien de se produire."); return $ret; } } ?>
Rien de plus simple...
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
18 oct. 2009 à 21:50
18 oct. 2009 à 21:50
c'est pas le script de tes pages classes qu'il faut voir c'est celle des pages suivantes
mais en tout etet de cause je vois que ton session_start est toujours apres ton require_once et que dans sql.class.php y'en a pas de demarrage de session..
mais en tout etet de cause je vois que ton session_start est toujours apres ton require_once et que dans sql.class.php y'en a pas de demarrage de session..
J'ai essayé autre chose, mais toujour le même soucie.
affiche "Resource id #3" au premier appel de page
affiche ensuite "0" ... sa vien du Sql mais pourquoi ?
$test = @mysql_connect(HOST, USER, PWD); @mysql_select_db (DB_NAME, $test); if (!isset ($_SESSION['test_sql'])) $_SESSION['test_sql'] = $test; print_r($_SESSION['test_sql']);
affiche "Resource id #3" au premier appel de page
affiche ensuite "0" ... sa vien du Sql mais pourquoi ?
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
18 oct. 2009 à 22:00
18 oct. 2009 à 22:00
tu l'appelle comment ta page ?
http://www.xxxxxxxxx.fr/index.php
dans l'index.php il y a juste require_once '_common.php';
qui contient le script cité plus haut.
le fichier s'appele _common.php
dans l'index.php il y a juste require_once '_common.php';
qui contient le script cité plus haut.
le fichier s'appele _common.php
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
18 oct. 2009 à 22:04
18 oct. 2009 à 22:04
et a tu mis un session_start ?