[PHP] Problème de session
RésoluA voir également:
- [PHP] Problème de session
- Easy php - Télécharger - Divers Web & Internet
- Forum Jeux vidéo
- Forum Gmail
- Forum Yahoo mail
- Forum Windows 7
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.
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question 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.
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']));
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...
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()
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, , 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...
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, , 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 ?
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