Portée d'une variable d'un forrmulaire via une autre page
Sur le chapitre 9. Exemple d'illustration de la portée des variables dans une fonction.
L'exemple fourni est fonctionnel. J'essaye de transposer l'exemple sur 2 pages: Page1 avec un formulaire et Page2 pour la gestion du calcul (fonction) + affichage du résultat.
Le résultat me retourne toujours une page blanche ou Undefined variable: volume in c:\program files\easyphp1-8\www\exercices\bugdetessence2.php on line 31
voici le code de la page 1 (bugdetessence.php)
// Calculer votre bugdet essence Budget Essence Volume Essence Prix Essence //
voici le code de la page 2 (bugdetessence2.php) et c'est la panique car je ne sais pas si je dois déclarer les variables de la page1 vers cette page ou non. Bref, la fonction passe inaperçue et les variables $volume, $prixAuLitre sont inconnus (du formulaire).
// calcul bugdet essence
Réponses apportées à cette discussion
Salut,
là, il y a pas mal à dire parce que tu pars en partie de principes de base obsolètes et d'un code en seconde page deux faux.
Le principe obsolète, c'est la manière dont tu récupères les valeurs du formulaire : pour que ça fonctionne, il faudrait au moins que la directive register_globals de ton php.ini soit à ON : par défaut, cette directive est à OFF depuis la version 4.2 de PHP. Il est aussi important de savoir qu'à partir de la version 6 (si toutefois elle voit le jour), cette directive disparaitra, sera à OFF par défaut et non modifiable. Pourquoi demanderas-tu peut-être : parce que ça ouvre une faille de sécurité potentielle importante.
Donc, pour récupérer les valeurs de ton formulaire, il faut les rechercher dans la super-globale appropriée selon la méthode utilisée pour le formulaire, get ou post et donc dans $_POST ou dans $_GET.
La seconde page de ton exemple ne doit pas donner grand chose. D'abord et avant tout parce que la fonction ne sert strictement jamais, elle n'est jamais appelée. Ensuite cette fonction utilise un passage des valeurs par référence, technique obsolète en PHP5. N'oublions pas que le support de PHP5 est arrêté depuis plus d'un an maintenant.
Le conseil du jour : analyse ce que tu veux faire globalement, mets au point l'affichage de sortie que tu veux voir, s'il doit y avoir des traitements, crée les fonctions appropriée et enfin seulement intègre ça dans une page. Par rapport à ce cheminement, il semble que tu aies un peu court-circuité les deux premières étapes et que tu sois parti sur la troisième directement enmettant au point les deux premières au fur et à mesure.
Enfin, pour ce qui est de la portée des variable : ça signifie quoi selon toi ? Essaye de m'expliquer ce que tu comprend ce cette formulation, ça nous donnera un point de départ pour te remettre sur les rails :)
Salut. Le problème est que je ne savais pas comment récupérer les variables du formulaire vers la page 2. Je sais comment faire maintenant. J'ai supprimé la fonction. Le résultat est sur cette page. Je ne garantis en rien la sécurité du code: Merci de votre réponse.
Tarek