Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
947 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] récupérer une variable dans une fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] récupérer une variable dans une fonction

n°1147758
r3llik
Posté le 12-07-2005 à 13:11:57  profilanswer
 

Bonjour,
 
Une bêtise je suppose, mais je reste néanmoins callé dessus...
 
mon lien est du type : index.php?nb=x
 
J'ai deux fonctions dans mon script :
function Tableau() et function Reservation()
 
je récupère la valeur de $nb dans ma première fonction avec global $nb
mais lorsque je veux également récupérer la valeur de $nb de la même manière dans ma deuxième fonction, celà ne fonctionne pas...
 
et je ne comprend pas pourquoi...
 
Merci d'avance

mood
Publicité
Posté le 12-07-2005 à 13:11:57  profilanswer
 

n°1147764
afbilou
pouet your life
Posté le 12-07-2005 à 13:15:03  profilanswer
 

Utilise $_GET['nb'] tu n'auras pu ce genre de probleme car $_GET est un tableau super global tout le temps visible.

n°1147768
r3llik
Posté le 12-07-2005 à 13:17:59  profilanswer
 

Merci pour ta réponse et ta rapidité =)
 
mais ca n'a pas l'air de fonctionner, soit je suis vraiment mauvais...
 
j'ai mis $nb = $_GET['nb']; devant les deux fonctions, puis j'ai essayé de le mettre dans les deux fonctions et j'obtiens bien la valeur de nb dans ma première fonction, mais toujours pas dans la deuxième.


Message édité par r3llik le 12-07-2005 à 13:31:54
n°1147795
snarky
Posté le 12-07-2005 à 13:35:43  profilanswer
 

j'ai commencé les fonctions hiern donc ce que je dis est a prendre avec des pincettes mais, j'pense que tu devrais rajouter  
 
global $nb; dans ta function

n°1147810
r3llik
Posté le 12-07-2005 à 13:43:13  profilanswer
 

C'est justement ce que j'avais fait, mais celà fonctionne dans la première et pas dans la deuxième :s

n°1147823
cesarr89
Posté le 12-07-2005 à 13:55:52  profilanswer
 

Balance ton code pour voir.

n°1147825
sielfried
Posté le 12-07-2005 à 13:56:50  profilanswer
 

Y'a pas besoin de 'global' si tu récupères directement dans GET.
 
Mais en effet, fait voir ton code.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1147852
r3llik
Posté le 12-07-2005 à 14:11:32  profilanswer
 

Mon code fait 600 lignes, si vous voulez vraiment le voir, je peux vous donner une url.
 
Sinon, il est structuré comme ca :

Code :
  1. function Tableau()
  2. {
  3. global $nb; --> ok ca marche
  4. ...
  5. }
  6. function Reservation()
  7. {
  8. global $nb; --> ca ne marche pas
  9. ...
  10. }
  11. if($_POST['action'] == 'ok')
  12.   Reservation();
  13. else
  14.   Tableau();


 

Code :
  1. function Tableau()
  2. {
  3. $nb = $_GET['nb']; --> ok ca marche
  4. ...
  5. }
  6. function Reservation()
  7. {
  8. $nb = $_GET['nb']; --> ca ne marche pas
  9. ...
  10. }
  11. if($_POST['action'] == 'ok')
  12.   Reservation();
  13. else
  14.   Tableau();


 
J'ai encore essayé d'autres combinaisons par désespoir mais toujours rien...

n°1147859
FlorentG
Unité de Masse
Posté le 12-07-2005 à 14:13:55  profilanswer
 

Je pense qu'il manque du code là, genre :

$nb = NULL;


:D

n°1147864
r3llik
Posté le 12-07-2005 à 14:18:48  profilanswer
 

J'essaie


Message édité par r3llik le 12-07-2005 à 14:19:15
mood
Publicité
Posté le 12-07-2005 à 14:18:48  profilanswer
 

n°1147868
FlorentG
Unité de Masse
Posté le 12-07-2005 à 14:20:47  profilanswer
 

loooooooooooooooooooooool :lol: :lol:

n°1147871
FlorentG
Unité de Masse
Posté le 12-07-2005 à 14:21:49  profilanswer
 

T'as pas compris, c'était du second degré. Je disais que dans le code que t'as posté, t'as viré la ligne que j'ai mis. C'était pour de rire.
 
Normalement t'aurais dû voir que mettre $nb à NULL est complètement stupide ;)

n°1147882
r3llik
Posté le 12-07-2005 à 14:26:11  profilanswer
 

Erf, ok ^^
Dans mon désespoir, je suis prêt à tout essayer !


Message édité par r3llik le 12-07-2005 à 14:26:51
n°1147896
snarky
Posté le 12-07-2005 à 14:32:59  profilanswer
 

sielfried a écrit :

Y'a pas besoin de 'global' si tu récupères directement dans GET.
 
Mais en effet, fait voir ton code.


 
mais vu qu'il met son get dans une autre variable sa marche pu non ? :??:

n°1147922
sielfried
Posté le 12-07-2005 à 14:40:11  profilanswer
 

snarky a écrit :

mais vu qu'il met son get dans une autre variable sa marche pu non ? :??:


 
Nan, faut voir selon ce qui l'arrange. [:spamafote]  
 
Sinon r3llik, essaie de réduire ton problème à un code minimal, et ensuite poste-le, en entier.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1147949
r3llik
Posté le 12-07-2005 à 14:57:13  profilanswer
 

Réduire... je l'ai réduit ci-dessus, je ne fait qu'utiliser $nb ensuite dans mes fonctions
 
Si il faut changer de nom de variable dans la deuxième fonction, histoire d'avoir par exemple $nb et $nb2 ca ne me dérange pas.
 
Tout ce que je voudrais c'est que je puisse récupérer la valeur nb située dans le lien, dans mes deux fonctions.
 
En tout cas merci de votre soutient, et si je ne montre pas plus du code, c'est juste pour vous éviter de trop chercher, je pense que la solution n'est pas loin...

n°1147981
sielfried
Posté le 12-07-2005 à 15:18:08  profilanswer
 

Tu dois pouvoir la récupérer (avec ta deuxième "solution" en tout cas). Y'a aucune raison.
 
Le problème doit être ailleurs.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1147984
sielfried
Posté le 12-07-2005 à 15:19:45  profilanswer
 

Quand je dis réduis, c'est réduire à une page PHP fonctionnelle qu'on puisse éventuellement tester.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1147988
bl@p_psx
Admin G15-france
Posté le 12-07-2005 à 15:22:40  profilanswer
 

et si tu passais ton $_GET['nb'] dans ta fonction ???
 
genre :
 

Code :
  1. if(IsSet($_GET['nb'])) $nb = htmlentities($_GET['nb']); else $nb = 0;
  2. Tableau($nb)


 
et pour ta fonction :

Code :
  1. function Tableau($var)
  2. {
  3. $nb = $var; --> ok ca marche
  4. ...
  5. }


Message édité par bl@p_psx le 12-07-2005 à 15:23:27
n°1148167
skylight
Made in France.
Posté le 12-07-2005 à 16:41:36  profilanswer
 

r3llik a écrit :

Mon code fait 600 lignes, si vous voulez vraiment le voir, je peux vous donner une url.
 
Sinon, il est structuré comme ca :

Code :
  1. function Tableau()
  2. {
  3. global $nb; --> ok ca marche
  4. ...
  5. }
  6. function Reservation()
  7. {
  8. global $nb; --> ca ne marche pas
  9. ...
  10. }
  11. if($_POST['action'] == 'ok')
  12.   Reservation();
  13. else
  14.   Tableau();


 

Code :
  1. function Tableau()
  2. {
  3. $nb = $_GET['nb']; --> ok ca marche
  4. ...
  5. }
  6. function Reservation()
  7. {
  8. $nb = $_GET['nb']; --> ca ne marche pas
  9. ...
  10. }
  11. if($_POST['action'] == 'ok')
  12.   Reservation();
  13. else
  14.   Tableau();


 
J'ai encore essayé d'autres combinaisons par désespoir mais toujours rien...


 
 
C'est normal que ta fonction Reservation ne reçoit pas la variable $_GET['nb'], puisque selon la condition, elle est appellée suite à un formulaire de type "post"
Donc s'il est de type "post", il n'y a aucune variable de type get
Essaie de mettre $_REQUEST au lieu de $_GET (REQUEST contient à la fois les tableaux POST et GET), sinon, inclus une variable cachée dans ton formulaire, avec pour valeur $nb, et ensuite tu pourra y accéder par $_POST.
 
 

n°1148171
FlorentG
Unité de Masse
Posté le 12-07-2005 à 16:43:19  profilanswer
 

P'tain, j'vais aller m'acheter des yeux [:dawa]

n°1148200
sielfried
Posté le 12-07-2005 à 17:02:30  profilanswer
 

Ben spa parce qu'il y a un form en post qu'il peut pas y avoir du get avec.
 
Pis ça marcherait pas dans une fonction sur deux a priori.  [:figti]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1148209
r3llik
Posté le 12-07-2005 à 17:08:46  profilanswer
 

Une révélation ?!? Voilà ce que j'attendais en allant me balader...
 
Ca à l'air de fonctionner ce truc, je devrais le faire plus souvent...
 
Le problème était effectivement autre part.
 
Pour exécuter la deuxième fonction, le script recharge la page... et bien entendu j'ai omis de renseigner la valeur de nb dans le lien du rechargement...
 

Citation :


P'tain, j'vais aller m'acheter des yeux [:dawa]


 
Moi aussi
 
 
 
En tout cas, un grand merci pour votre aide et désolé pour l'erreur IDIOTE.

n°1148210
skylight
Made in France.
Posté le 12-07-2005 à 17:08:47  profilanswer
 

sielfried a écrit :

Ben spa parce qu'il y a un form en post qu'il peut pas y avoir du get avec.
 
Pis ça marcherait pas dans une fonction sur deux a priori.  [:figti]


 
 
Ben oui, ça ne marche pas dans une fonction sur deux :D
 
Et sinon, dans son utilisation, je pense très fortement qu'il n'ait pas mis d'action genre "action.php?toto=3" quoi [:yo]

n°1148218
r3llik
Posté le 12-07-2005 à 17:13:48  profilanswer
 

Je mets cà sur le compte de la fatigue ;)
 
sinon, ca marche impec maintenant : www.lta-tennis.be/test/

n°1148220
sielfried
Posté le 12-07-2005 à 17:21:35  profilanswer
 

skylight a écrit :

Ben oui, ça ne marche pas dans une fonction sur deux :D
 
Et sinon, dans son utilisation, je pense très fortement qu'il n'ait pas mis d'action genre "action.php?toto=3" quoi [:yo]


 
Jvois pas pourquoi $nb = $_GET['nb'] aurait marché si y'avait aucun GET. ;)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1148232
skylight
Made in France.
Posté le 12-07-2005 à 17:36:55  profilanswer
 

Regarde bien sa condition, une page est appellée suite à un formulaire (donc si la variable était en URL, elle ne l'est pas forcément après validation du formulaire)
 
D'où ma parenthèse sur le action="index.php?nb=valeur", s'il n'a pas persévéré sa variable, elle est perdue.

n°1148235
sielfried
Posté le 12-07-2005 à 17:40:04  profilanswer
 

Bon j'ai toujours pas compris où tu veux en viendre (vu que les deux fonctions sont appelées exactement dans le même if, après validation du form, et qu'une marche et pas l'autre), mais on va dire que ça n'a plus beaucoup d'importance. :d


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1148852
skylight
Made in France.
Posté le 13-07-2005 à 11:44:28  profilanswer
 

C'que je veux dire c'est que Tableau() n'est pas forcément appellée suite à une soumission de formulaire, donc possible présence de variable $_GET :D (contrairement à Reservation() qui est appellée systématiquement suite à une soumission de formulaire (notamment $_POST['action'] qui vaut 'ok') et donc probable absence de variable $_GET [:boidleau]
 
Enfin, :o

n°1148877
sielfried
Posté le 13-07-2005 à 11:50:37  profilanswer
 

Ah ok, j'l'avais pas vu comme ça. ;)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] récupérer une variable dans une fonction

 

Sujets relatifs
Récupérer des fichiers dans un dossier[pdf] automatiser une fonction print
Conversion Site ASP en PHP[php] Fonction mail, erreur incompréhensible [Résolu]
Fonction qui récup tous les paramètres d'une méthode ?[PHP/FTP] Supprimer un répertoire au nom interdit
Php, les images et les polices....Variable dans access
[HTML/PHP] Récupérer données d'un csv[PHP] Récuperer une variable d'une fonction...
Plus de sujets relatifs à : [PHP] récupérer une variable dans une fonction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR