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

Langage PHP Discussion :

[POO] objet ans url


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Par défaut [POO] objet ans url
    Bonjour, j'essaie de passer un objet dans l'url et de le récupérer en utilisant le tableau $_GET. Mais ça ne marche pas. Est-ce normal ?

    voilà comment je construis l'url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "auteurs.php?ancien_auteur=".$auteur;
    voici ma classe :
    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
     
    	class Auteur
    	{
    		private $nom;
    		private $prenom;
     
    		function __construct($nom, $prenom)
    		{
    			$this->nom = $nom;
    			$this->prenom = $prenom;
    		}
     
    		function getNom()
    		{
    			return $this->nom;
    		}
     
    		function getPrenom()
    		{
    			return $this->prenom;
    		}
     
    		function toString()
    		{
    			return $this->nom .' '. $this->prenom;
    		}
    	}
    l'url générée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    auteurs.php?ancien_auteur=Object id # 1
    et ce que je récupère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ancien auteur : Object id
    Fatal error: Call to a member function getNom() on a non-object in controle_modifier.php on line 181
    (j'ai l'impression qu'il transforme l'objet # 1 en string qui vaut 'Object id')

    Merci de votre aide

  2. #2
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    Oui c'est normal, dans une url tu ne peux passer que des chaines.
    Tu ne peux donc pas passer directement un objet comme cela.
    Regarde du coté de la sérialisation.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Par défaut
    ok merci. Et dans $_POST on peut ?

    Je vais aller voir la sérialisation merci

  4. #4
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    Non plus.
    GET et POST passent par le client.
    Le client ne va pas connaitre la définission de ta classe.
    Donc comment veux tu qu'il puisse l'utiliser ?
    La sérialisation va te transformer ton objet en chaine.
    Et de l'autre coté tu désérialise pour transformer ta chaine en objet.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Par défaut
    ok merci beaucoup. Sympa la sérialisation ^^. Ca marche!!

  6. #6
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    Mais c'est légerement lourd quand meme ? pour ne rajoute tu pas un attibut id_auteur ? et tu fait juste passer l'id en URL
    de toute facon si tu fait de la POO il y de forte chance pour que tu stocke des "auteurs" dans un base de données ?

    SKN

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Par défaut
    je le fait comme ça car j'ai pas trop le choix. Y'a pas d'id pour les auteurs en base. Le seul moyen de les reconnaître c'est avec les champs qui sont forcément différents. Par contre pour le php, j'ai créé un id mais je ne peux pas l'utiliser ici c'est pour ça que je voulais passer l'objet. Même si c'est un peu plus long, niveau performances, ça va donc je vais rester sur cette solution.

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

Discussions similaires

  1. [POO] objet requis dans choix de bouton radio
    Par allowen dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/11/2005, 13h46
  2. [POO] objet http_request
    Par marti dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/10/2005, 01h14
  3. [POO] Objet / procedurale
    Par poussinphp dans le forum Langage
    Réponses: 27
    Dernier message: 11/10/2005, 15h10
  4. C++ POO Objet
    Par Jean Frobert dans le forum Langage
    Réponses: 5
    Dernier message: 23/03/2005, 19h02
  5. [POO] Objet Navigator
    Par AssKiller dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/10/2004, 10h38

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