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 :

conflit variables même nom


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 34
    Points
    34
    Par défaut conflit variables même nom
    Bonjour,

    J'ai un script qui utilise une variable disons id_personne=1.
    Dans ce script je fais un httprequest dont l'url est le script lui même et l'url contient dans ses paramètres la variable id_personne=1.
    Lorsque le httprequest s'execute cela signifie qu'il rentre dans le script, mais là id_personne = 0, toujours!

    Que se passe-t-il ?


    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce n'est pas parce que tu envoies une donnée en POST que la variable est affectée dans le script PHP.

    il faut la recuperer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_personne = $_POST['id_personne']
    sinon montre nous ton code.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    Oui je récupère bien la variable (j'ai un script php qui me transforme les $_POST[' ce_que_je_veux '] par $ce_que_je_veux dynamiquement selon ce que contient $_POST)

    script: machin.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?
    if($from = 0)
    {
         // traitement ou j'utilise $id_personne
         // ensuite je fais httprequest(machin.php?id_personne=1&$from=httprequest)
         // je recupere le contenu de httprequest et je l'envoi par mail avec php mailer
    }
     
    if($from="httprequest")
    {
         // cas où je rentre seulement depuis l'appel avec le http request
         // et là id_personne que j'ai passé en paramètre à 1 vaut 0 maintenant
    }
    ?>
    si tu veux des précisions n'hésite pas.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La tu ne nous montres rien comme code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    machin.php?id_personne=1&$from=httprequest
    le $ ici c'est une faute de frappe ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    oui désolé c'est une erreur de frappe.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    Le code fonctionne parfaitement, le problème se situe au niveau de l'appel du script avec httprequest: quand le httprequest rapelle le script la variable id_personne passe à 0 alors que dans l'appel je la mets à 1 et je la récupère bien de l'autre côté.

    On se retrouve dans cette situation:

    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
    machin.php?id_personne=1&from=0
    {
       if($from==0)
       {
             // bla bla bla
             httprequest(machin.php?id_personne=1&from=httprequest);
             { // DONC ON RE-RENTRE DANS machin.php
                  if($from=="httprequest")
                  {
                          // ICI $id_personne vaut 0.
                  }
             }
             // ici $id_personne vaut toujours 1
       }
    }
    L'imbrication et l'appel du même script semble générer un conflit de variables, car si dans le httprequest je change $id_personne en $d_personne_bis et que dans le traitement je récupere $id_personne_bis là ca marche.

    Pouvez-vous m'en dire plus sur les thread serveur en php, comment sont gérer les variables et les appels imbriqués du même scripts? Les variables sont-elles globales ou locales?

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/06/2008, 16h05
  2. PL/pgSQL : conflit entre variable et nom de colonne
    Par archeboc dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 26/03/2008, 13h10
  3. [MySQL] Problème avec php/mysql, variables du même nom
    Par Naxosy dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/01/2008, 16h31
  4. Réponses: 10
    Dernier message: 24/05/2007, 17h27
  5. variable d'une structure de même nom que la structure ?
    Par Bakura dans le forum Visual C++
    Réponses: 7
    Dernier message: 28/01/2007, 23h15

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