pb passage de variable d'une page a l'autre

keb
Invité n'ayant pas de compte PHPfrance

14 déc. 2005, 13:08

Bonjour, j'utilise php / mysql sur mon pc de bureau.Je viens de changer d'ordi, mon ancien etait sous libranet et lmon nouveau st sous debian sarge.

Auparavant j'avais des bases de donnees qui utilisaient des formulaires pour transmettre des variables d'une page a la suivante et ca marchait.

Malheureusementsur le nouveau pc, ou j'ai mis les bases mysql et copier / coller les fichiers php, cela ne marche plus !! apparemnt les varaiables qui sont selectionnees sur la premiere page ne sont pas transmise a la suivante !!

merci d'avance pour votre aide

Mammouth du PHP | 1776 Messages

14 déc. 2005, 13:22

Encore une fois, on ne peut t'aider sans ton script ! Nous ne sommes pas encore devin, et même à l'approche de Noël nous ne faisons pas de miracle. Donc si tu souhaites une réponse, il serait apprecié que tu donnes les éléments concrets !
Mets-toi à notre place !

exemple: J'ai un soucis, un texte ne s'affiche pas, que se passe t'il comme problème ?
Note: si tu arrives à répondre à cette question quasi identique à la tienne, tu es très fort :wink:

Mammouth du PHP | 19672 Messages

14 déc. 2005, 13:28

Vérifie aussi la valeur de la directive register_globals dans le fichier de configuration de PHP: il y a fort à parier qu'elle est à OFF : ça implique que pour récupérer les variables du formulaire dans la page de traitement, il faut initialiser explicitement les variables :
$var = $_POST['var'];
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1776 Messages

14 déc. 2005, 13:40

Vérifie aussi la valeur de la directive register_globals dans le fichier de configuration de PHP: il y a fort à parier qu'elle est à OFF : ça implique que pour récupérer les variables du formulaire dans la page de traitement, il faut initialiser explicitement les variables :
$var = $_POST['var'];
Concernant ce register global, je reve ou c'est mùoins securisé de le passer à ON ? car je conseille tjr de le laisser à off et de mieux programmer.

Note: j'avais lu ça sur un site et j'avais pris ça par principe :wink:

Mammouth du PHP | 19672 Messages

14 déc. 2005, 13:45

Tout à fait juste : s'il est à off, il faut le laisser à off. Mais ça pose des problème pour le scripts qui ont été codé à l'ancienne méthode, c'est à dire avant la version 4.2 de PHP.

Le danger avec le register_globals à ON, c'est l'injection SQL par l'envoi de variables via l'URL qui seront récupérées et traitées directement: en mettant cette directive à OFF, il devient nécessaire d'initialiser les variables explicitement comme je l'ai indiqué plus tôt.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1776 Messages

14 déc. 2005, 14:17

en mettant cette directive à OFF, il devient nécessaire d'initialiser les variables explicitement comme je l'ai indiqué plus tôt.
Ouep, et c'est le mieux :wink:

keb
Invité n'ayant pas de compte PHPfrance

14 déc. 2005, 14:49

et ben en utilisant ceci : <?php echo $_POST['nom']; ?>

mon probleme semble resolu, c'est magnifique... c donc certainement ce probleme de ON / OFF qui m'eenuyait

Merci de votre rapidite de reponse


PS : la prochaine fois j'essaierais de penser a mettre le script... ;-)

Keb

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 déc. 2005, 15:04

Une astuce existe pour les programmeurs qui veulent mettre à niveau rapidement l'ancienne codification PHP basée sur un register_globals à ON.
Puisque cette directive est à OFF et qu'il ne faut pas la remettre à ON surtout s'il s'agit d'un parseur situé sur un serveur public.

L'astuce est de rajouter une ligne de code PHp au début de toutes les page PHP qui traitent des formulaires et qui se référent aux noms des champs transmis.

La ligne de code est la suivante :
<?php 
extract ($_GET);
extract($_POST);
?>
basé sur la fonction extract qui transforme les champs (GET ou POST) automatiquement en variables php.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Mammouth du PHP | 19672 Messages

14 déc. 2005, 15:23

Mouais, j'encouragerais pas cette manip, ça laisse la porte ouverte aux injections. Tu me diras : "Il faut encore le savoir", peut-être, mais la faille est toujours là.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 déc. 2005, 16:34

Quelles failles, l'extract que j'ai donné déclare les variables contenues dans le GET et le POST rien d'autres.
Si un programme utilise les variables extraites tant-mieu sinon ça n'a aucune incidence sur le programme.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène