Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/08/2006, 15h45   #1
Invité régulier
 
Inscription : juin 2004
Messages : 54
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : juin 2004
Messages : 54
Points : 6
Points : 6
Envoyer un message via MSN à orochimaru
Par défaut Objet en session

Bonjours à tous,

Je suis actuellement en train de réaliser un site pour une entreprise et il y a un petit probleme sur lequel que je n'arrive pas à résoudre

Déja, voila mon code:
Code :
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
<?php 
/* Pour le calcul du temps d'éxecution de la page */
$temps_debut = microtime(true);
 
require_once('../includes/config.inc.php5');
require_once('../includes/fonctions.inc.php5');
 
session_start();
 
/* Connexion à la bdd avec les identifiants contenus dans config.php */
$bdd  = new mysql($sql['host'],
                  $sql['user'],
                  $sql['pwd'],
                  $sql['db'] );
 
if( !empty($_POST['pseudo']) && !empty($_POST['pwd']) )
{
    /* mises en session de l'objet user */
    $_SESSION['user'] = new user($_POST['pseudo'], $_POST['pwd']);
 
    /* connexion de l'utilisateur */
    $_SESSION['user']->login($bdd);
}
 
/* Si l'utilisateur n'est pas loggué, il est redirigé à la page d'authentification */
if( !$_SESSION['user']->loggue )
{
    $_SESSION['user']->loggue = FALSE;
        session_unset();
    /* utilisation de l'URL absolue pour la redirection vers la page d'authentification */
    header("Location: http://" . $_SERVER['HTTP_HOST']
        . rtrim(dirname($_SERVER['PHP_SELF']), '/\\')
        . "/index.php5?msg=1");
}
...
...
?>
Ceci est le code de la page d'acceuil qui se trouve juste apres la page d'authentification (d'ou les variables $_POST qui sont nvoyés par la pages d'avant)

Les variables $_POST['pseudo'] et $_POST['pwd'] (si elles ne sont pas vides) sont envoyés à la méthode user (qui est egalement le constructeur de la class user, cette méthode met l'attribut loggue à TRUE si l'identification fonctionne et à FALSE dans le cas contraire

Seulement l'objet est mis en session comme vous pouvez le voir avec cette ligne:
$_SESSION['user'] = new user($_POST['pseudo'], $_POST['pwd']);
Je devrais donc normalement avoir acces à tous les attributs dans toutes les pages qui contiennes des sessions pousque l'objet est contenu dans $_SESSION['user']

Seulement l'attribut pseudo ($_SESSION['user']->pseudo (cet attribu est rempli automatiquement avec le contructeur de la class)) ne passe pas entre les pages, par exemple lorsque j'arive sur cette page elle contient 'admin' et quand j'actualise elle est vide !

J'ai essayé beaucoup de choses et je ne voit vraiment pas pourquoi $_SESSION['user']->pseudo ne passe pas :/

Si quelqu'un pouvais m'aider
Merci d'avance
orochimaru est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2006, 16h24   #2
Nouveau Membre du Club
 
Inscription : juin 2004
Messages : 76
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 76
Points : 33
Points : 33
Je vais peut-être dire une connerie mais es-tu sûr qu'on puisse mettre des Objets dans les sessions?

A priori (et sans recherche préalable) je dirais qu'il faut que ton objet soit "serializable". Une fois que c'est le cas, avec de la chance PHP le comprend tout seul, avec moins de chance il faut s'occuper soi-même de la reconstruction de l'objet.

Il ne faut pas oublier qu'une session est un fichier txt stocké sur le serveur.

(J'espère ne pas avoir dit n'importe quoi )
Tourix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2006, 16h32   #3
Invité régulier
 
Inscription : juin 2004
Messages : 54
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : juin 2004
Messages : 54
Points : 6
Points : 6
Envoyer un message via MSN à orochimaru
J'ai tiré ca de la FAQ PHP du site: http://php.developpez.com/faq/?page=...ons_sauvegarde

il y a cet exemple la:
Code :
1
2
3
4
5
6
<?php
require("../common/visitor.class.php");
session_start() ;
$_SESSION["myVisitor"] = new Visitor();
...
?>

EDIT : C'est bon j'ai trouvé, je supprimais l'attribut dans le destructeur de la class user, quel con de pas y avoir pensé avant... Merci quand meme pour votre aide
orochimaru est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2006, 16h47   #4
Nouveau Membre du Club
 
Inscription : juin 2004
Messages : 76
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 76
Points : 33
Points : 33
exact, est-ce que tu inclues bien le fichier qui définit ta classe user (genre user.class.php) avant d'essayer d'accéder à ton objet user qui est en session?

EDIT: Ah c'est reglé
Tourix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h32.


 
 
 
 
Partenaires

Hébergement Web