OVH Community, votre nouvel espace communautaire.

problème avec paramètre Get en php


Janine
29/03/2004, 10h38
Merci beaucoup

vous êtes géniaux.

En fait j'ai pas mal de liens avec des variables. Je crois pour le début je vais mettre le register_global on et par la suite changé les pages une par une. Quand j'ai fini, je vais la désactivé de nouveau.

Merci beaucoup pour votre aide


Cordialement

Janine

almiron
28/03/2004, 12h36
oui voila je me rappelais plus la difference etre $_GET et $_POST, enfait le $_GET c'est comme avec la valeur register_globals à On sauf quelle est à Off, donc comme tout passe dans l'URL c'est moins secure que de faire tout en $_POST avec register_globals à Off mais bon c'est une maniere de programmer ...

enfin entre toute ces explications ca devrait t'aider

jokerman
28/03/2004, 08h57
Oui tu as raison ;
Pour etre plus clair :

Utliser POST :

Avantage : pas de variables dans l'URL, donc difficile de faire passer des instruction via l'url

un exemple :





sur la page produit.php


$c = $_POST[c]; // si tu veux recup ta variable
echo "".$c."
"; // si tu veux afficher ta variable ou
echo ".$_POST[c].";

?>


Utliser GET :
Avantages :
Get est plus souple, il permet de passer des variable directement dans les urls,

Inconveniants :
Une personne mal intentionnée (est il y en a sur le net ) peut utiliser la chaine "produit.php?c=valeur" pour y introduire des commandes et tenter de Hacker ton serveur.
Il est possible de crypter les variables transmise et de les decrypter à la reception, mais c'est un peut plus compliqué.

un exemple :
dans l'url : produit.php?c=valeur

sur la page produit.php


$c = $_GET[c]; // si tu veux recup ta variable
echo "".$c."
"; // si tu veux afficher ta variable ou
echo ".$_GET[c].";

?>
ces 2 exemples fonctionnent avec register global ON et OFF.
Voila , j'espere que ce mini-mini tuto te sera utile.

Jokerman.

almiron
28/03/2004, 08h11
oui oui c'est clair c'est plus secure.

j'avais pas vu ton post quand j'ai fait le mien c'est pour cela que j'ai d'abbord proposer de passer la variable à On car tout dépends de comment elle va programmer par la suite....

mais je confirme vaut mieux utiliser les $_POST car de base les form sont en post (et donc pas les $_GET sauf erreur):

$c = $_POST["c"];

enfin moi c'est ce que j'utilise en tout cas...

jokerman
27/03/2004, 21h54
Bonsoir, il me semble que le register globla OFF est plus secure, la solution consiste à recuperer la variable avec un :

$c = $_GET[c];

sur la page produit.php

Non ?

almiron
27/03/2004, 21h49
Bonjour,

je pense que votre solution est ici dans un des guides OVH dnt voici un résumé :

Actuellement dans votre fichier php.ini, la variable register_globals à Off.
Il faut donc que vous localisiez le fichier php.ini puis vous l'éditiez pour
mettre l'option register_globals à On.

jokerman
27/03/2004, 20h29
il te faut vérifier si les variables globales sont OFF ou ON sur ton dédié

va voir sur http://tonserveur.ovh.net/test.php (phpinfo)

si variables gobales off :

pour récuperer ta variable :
sur ta page produits.php
tu met en haut de page avant ta requette ou l'affichage de ta variable $c :

$c = $_GET[c];

et voili

Si register grlobal est ON ca devrai marcher. essaye de faire un post (tu fait un petit formulaire avec juste un champ et un bouton submit, et tu post ta variable sur ta page produits.php

avec :
$c = $_POST[c];
echo "".$c."
";

tu peux tester si ta variable passe bien d'une page a l'autre

pour tester avec GET

avec :
$c = $_GET[c];
echo "".$c."
";
bon courage

Janine
27/03/2004, 19h19
Bonjour,


j'ai un problème avec un lien du type www.domaine.com/produits.php?c=voiture
La variable c n'est pas transferé
Dans mon fichier produits.php j'ai une requête mysql est celle la me sort rien du tout comme la variable c reste toujours vide.

Est-ce qu'il a quelqu'un qui peut m'aider?
Je ne sais pas comment résoudre ce problème.


Merci d'avance

Cordialement

Janine