|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : novembre 2004 Messages : 441 ![]() |
bonjour à tous
quelle est la différence après un envoi via POST d'un formulaire, dans le cadre de la récupération de variables entre: Code :
if ( isset($_POST['var1']) ) {$var1 = $_POST['var1'];//je lance le traitement} Code :
if (!$var1=="") {//je lance le traitement} merci beaucoup |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
C'est quoi le rapport entre tes deux bouts de code
![]() Dans le premier tu regardes si la variable $_POST['var1'] existe si c'est le cas tu affectes sa valeur à $var1. Mais dans le deuxième tu testes juste si $var1 est une chaîne non vide...
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() |
le premier me semble plus propre
ça dépend par exemple de la valeur de ton register_globals dans ton fichier de config php de ton serveur on => tes 2 lignes fonctionnes (on c'est pas très très bien) off => seule la première va fonctionner (à mon avis) dans le cas où les deux marchent avec le premier même si la variable n'existe pas tu n'auras pas d'erreur (grace au isset) avec l'autre je crois que tu auras un warning (php notice ...) ensuite ton $var1 récupére la valeur de var1 qui est soit en session ($_SESSION), soit envoyée par post ($_POST), soit dans l'url ou envoyée par get ($_GET) bref si les trois sont présente, y'a un ordre de priorité (que je ne sais plus) et donc ce n'est peut être pas la valeur que tu as postée qui sera reçue et il doit y avoir d'autres trucs oups je repense à un truc si la variable est vide mais envoyée par le formulaire tu auras peut être isset($_POST['var1']) à TRUE mais $_POST['var1'] vide (à tester) donc ça serait différent par rapport à la ligne d'en dessous ou tu vérifies juste si c'est non vide... |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : novembre 2004 Messages : 441 ![]() |
eh bien je crois que j'ai pas mal d'erreurs de code dans une de mes procédures...
car la 2eme syntaxe que j'utilise, je l'utilise après un post d'un formulaire où il y a cette fameuse variable var1 qui est envoyée... et quand je récupère ma variable après le formulaire j'utilise if (!$var1=="") et ma variable var1 est renseignée pourtant, après un POST sans l'avoir récupérée par un $_POST['var1']... c'est pour ça que je vous demandais si mes 2 syntaxes, après validation d'un formulaire et envoi des variables par POST, étaient correctes (a priori NON, je suppose que seule la 1ere est bonne)... |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : novembre 2004 Messages : 441 ![]() |
oui en effet le register_globals est à ON...
|
|
|
00
|
|
|
#6 |
|
Membre actif
![]() |
le register_globals à ON simplifie le codage mais est dangereux
(et parfois nécessaire si pour le passer à off il faudrait recoder je ne sais combien de scripts incompréhensibles.... des fois je hairais presque mes prédécesseurs) et maintenant à l'installation il est à off d'office (cf un extrait d'un vieux php.ini ; Note that register_globals is going to be depracated (i.e., turned off by donc si possible mieux vaut faire du code compatible avec la valeur off on sait clairement quelle variable on récupère c'est plus pratique pour la maintenance au moment où l'on code on sait quelle variable on récupère (entre $_POST, $_SESSION, $_GET et $_COOKIE que j'avais oublié avant) mais plusieurs mois après pas sur... mais vérifie bien que tu obtiens bien le même code d'un coté c'est isset et de l'autre non vide. à mon avis une variable peut etre définie à vide (d'où un petit risque) |
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : novembre 2004 Messages : 441 ![]() |
merci pour vos réponses qui m'ont beaucoup aidé
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com