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] Probleme avec $_GET


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Par d�faut [POO] Probleme avec $_GET
    Bonjour � tous.
    J'ai un petit soucis.
    J'aimerai faire un $_GET mais pas avec une chaine de caractere comme d'habitude mais avec une variable car la chaine de caractere change dans une boucle (parcourt d'un fichier).
    Mais il m'affiche une erreur

    Mon code
    //parcour d'un fichier xml et constrction d'un tableau en fonction du fichier
    $formulaire = simplexml_load_file('checkbox.xml');
    foreach ($formulaire->moyen as $moyen)
    {

    $nom=$moyen->name;
    $valeur=$moyen->value;
    $comportement=$moyen->comportement;
    if(isset($_GET[$nom]))<------------ Probleme Ici
    {
    $tab[]=array($nom,$valeur,$comportement);
    $i=$i+1;
    }
    }


    Code erreur
    Warning: Illegal offset type in isset or empty in d:\DONNEES\X2000521\mes documents\prog\0.8\visual.php on line 22




    Merci d'avance
    Cordialement Corwen

  2. #2
    Membre �clair� Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Par d�faut
    Le pb n'est pas de faire un $_GET[$var] , le probleme c'est que si ta var est vide tu fais un isset($_GET[]) ...

    C'est ce qui te g�n�re cette erreur ...

  3. #3
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Par d�faut
    La variable est affect�.
    J'ai tester un echo sur $nom et il me retourne la chaine de caractere que je souhaite

  4. #4
    Membre �m�rite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par d�faut
    Citation Envoy� par Corwen
    La variable est affect�.
    J'ai tester un echo sur $nom et il me retourne la chaine de caractere que je souhaite
    quel genre d'erreur est afficher?

  5. #5
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Par d�faut
    Warning: Illegal offset type in isset or empty in d:\DONNEES\X2000521\mes documents\prog\0.8\visual.php on line 22

  6. #6
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Par d�faut
    up

  7. #7
    Expert confirm�
    Avatar de S�b.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 346
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 346
    Billets dans le blog
    17
    Par d�faut
    Citation Envoy� par Corwen
    La variable est affect�.
    J'ai tester un echo sur $nom et il me retourne la chaine de caractere que je souhaite
    Y'a du __toString( ) dans l'air...
    $moyen->name et $nom sont des objets non ?
    Si tu fais echo $nom la m�thode magique __toString( ) est appel�e et affiche le contenu de l'objet, tu as l'impression d'avoir affaire � une cha�ne alors que non. Par contre __toString( ) n'est pas appel�e dans le $_GET => Erreur car les cl�s de tableau ne peuvent �tre que des scalaires. L� c'est comme si tu faisais $_GET[new MyObject(...)], ce qui est incorrect en PHP.

    Ceci devrait fonctionner :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $_GET[$nom->__toString( )]

  8. #8
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Par d�faut
    $nom=$moyen->name;
    echo $nom;
    $valeur=$moyen->value;
    $comportement=$moyen->comportement;
    if(isset($nom->_toString()))


    erreur
    Fatal error: Can't use method return value in write context in d:\DONNEES\X2000521\mes documents\prog\0.8\visual.php on line 23

  9. #9
    Expert confirm�
    Avatar de S�b.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 346
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 346
    Billets dans le blog
    17
    Par d�faut
    Citation Envoy� par Corwen
    if(isset($nom->_toString()))
    Faut que tu m'expliques ce que t'as essay� de faire l�
    De plus c'est __toString( ) et non _toString( )

    Plus d'infos sur les m�thodes magiques : http://www.php.net/oop5.magic

  10. #10
    Expert confirm�
    Avatar de S�b.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 346
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 346
    Billets dans le blog
    17
    Par d�faut
    Citation Envoy� par Corwen
    Fatal error: Can't use method return value in write context in d:\DONNEES\X2000521\mes documents\prog\0.8\visual.php on line 23
    En tout cas c'est toujours marrant de d�couvrir des messages d'erreur inhabituels

  11. #11
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Par d�faut
    Ravi de te servir mais meme avec les deux underscore c pareil

  12. #12
    Expert confirm�
    Avatar de S�b.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 346
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 346
    Billets dans le blog
    17
    Par d�faut
    Citation Envoy� par Corwen
    Ravi de te servir mais meme avec les deux underscore c pareil
    Donne-nous ton code qu'on voit o� tu en es.

  13. #13
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Par d�faut
    <?
    // Declaration du tableau contenant les informations utiles � la creation de la requete
    $tab=array();

    // declaration de la variable servant � definir le nombre de valeurs dans le tableau
    $i=0;

    //recuperation de la date saisie (ou non)
    $date=$_GET['date'];

    // recuperation des informations saisies dans la page suivante en fonction du fichier de configuration xml
    $formulaire = simplexml_load_file('checkbox.xml');
    foreach ($formulaire->moyen as $moyen)
    {

    $nom=$moyen->name;
    echo $nom;
    $valeur=$moyen->value;
    $comportement=$moyen->comportement;
    if(isset($nom->__toString()))
    {
    $tab[]=array($nom,$valeur,$comportement);
    $i=$i+1;
    }
    }

  14. #14
    Membre �m�rite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par d�faut
    c'est normal tu dois faire isset($_GET[$nom->_toString))... car isset($nom->_toString) ne peut produire qu'une erreur puisque une variable est attendue par isset non une chaine de caract�re

  15. #15
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Par d�faut
    Oups d�sol� j'ai mal taper mon code.
    Je vais modifier pour testern je te dis apres

  16. #16
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Par d�faut
    if(isset($_GET[$nom->__toString()]))

    Fatal error: Call to undefined method SimpleXMLElement::__toString() in d:\DONNEES\X2000521\mes documents\prog\0.8\visual.php on line 23

    if(isset($_GET[$nom->_toString()]))

    Fatal error: Call to undefined method SimpleXMLElement::_toString() in d:\DONNEES\X2000521\mes documents\prog\0.8\visual.php on line 23

  17. #17
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    109
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 109
    Par d�faut
    __toString est une methode de Classe.

    ici il n'est pas question de classe mais de travail sur un tableau:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    //parcour d'un fichier xml et constrction d'un tableau en fonction du fichier 
    $formulaire = simplexml_load_file('checkbox.xml'); 
    foreach ($formulaire->moyen as $moyen) 
    ..
    .
    Ca peut pas marcher.

  18. #18
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    109
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 109
    Par d�faut
    Il faut essayer avec la fonction eval()
    Voir la doc ici:
    http://<br /> http://fr3.php.net/ma...eval.php<br />

    EDIT : mauvaise idee... A ne pas suivre.

  19. #19
    Expert confirm�
    Avatar de S�b.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 346
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 346
    Billets dans le blog
    17
    Par d�faut
    __toString( ) est une m�thode oui, et $nom est un objet de classe SimpleXMLElement, il me semblait que cette classe impl�mentait __toString( ).
    Bon, fait :


  20. #20
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    109
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 109
    Par d�faut
    Citation Envoy� par S�b.
    __toString( ) est une m�thode oui, et $nom est un objet de classe SimpleXMLElement, il me semblait que cette classe impl�mentait __toString( ).
    Bon, fait :

    Oui tu as raison ... desole.

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. [POO] Problème avec une variable static
    Par grimsk dans le forum Langage
    R�ponses: 5
    Dernier message: 23/05/2006, 01h58
  2. [POO] Problème avec les classes
    Par peypey dans le forum Langage
    R�ponses: 8
    Dernier message: 03/05/2006, 15h05
  3. R�ponses: 2
    Dernier message: 28/03/2006, 03h36
  4. [POO] Probleme avec static et autoload
    Par laetyboop dans le forum Langage
    R�ponses: 1
    Dernier message: 23/03/2006, 14h46
  5. [POO] Probleme avec $this
    Par cubepiege dans le forum Langage
    R�ponses: 5
    Dernier message: 01/03/2006, 15h39

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