Probleme de session

Signaler
Messages postés
14
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
14 décembre 2011
-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Bonjour,

J'ai développé un site en php dans lequel il faut s'identifier pour entrer.
Pour vérifier sur chaque page si l'utilisateur est bien identifié, j'ai stocké un objet en session.
Cela fonctionne très bien en local sur mon poste, mais quand je test en ligne chez mon hébergeur, j'ai une erreur sur la 2eme page chargée quand on s'identifie.

Mon code qui appelé sur chaque page :

if(isset($_SESSION['oSession']))
{
    $oSession = unserialize($_SESSION['oSession']);
    if($oSession -> isValid() ==  false)
    {
        header('Location: index.php');
    }
}
else
{
    header('Location: index.php');
}

Petite explication:
je recupère l'objet "oSession" et je vérifie que le login et le mot de passe de l'utilisateur est correct sinon je le redirige sur la page d'acceuil.

Et donc la 2eme fois que ce script est executer (chez mon hebergeur) j'ai cette erreur :

Warning: unserialize() expects parameter 1 to be string, object given in
/htdocs/public/www/Test/authentificate.inc.php on line
11

Fatal error: Call to a member function isValid() on a
non-object in /htdocs/public/www/Test/authentificate.inc.php on line
12


Merci d'avance pour votre aide

2 réponses

Messages postés
14
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
14 décembre 2011

Petites précisions :
    - Sur les 2 environnements, dans le php.ini : session.auto_start = 0
    - Je fais un "session_start();" avant le script précédent
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Salut,

Je ne sais pas ce que comporte $oSession mais si ce n'est que de l'identification c'est à mon avis une mauvaise idée que de transmettre un objet : plus lourd côté ressource et code. Autant faire un if ($_SESSION['is_valid'] === true) etc ...
Par ailleurs pense à mettre des exit après tes headers.

Le pb doit être au niveau du serialise qui ne s'exécute pas correctement, car si c'était le cas tu n'aurais pas ce message d'erreur. Peux tu fournir le code ?
As tu fais un include de ta classe en début de script ?

Cordialement,

Kohntark -