Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/01/2007, 09h41   #1
Membre confirmé
 
Avatar de mussara
 
Inscription : novembre 2004
Messages : 441
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : novembre 2004
Messages : 441
Points : 299
Points : 299
Par défaut Récupération différente d'une variable après formulaire

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}
et

Code :
if (!$var1=="") {//je lance le traitement}
si vous pouvez m'en dire plus...
merci beaucoup
mussara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 09h54   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 09h58   #3
Membre actif
 
Inscription : août 2002
Messages : 194
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 194
Points : 194
Points : 194
Envoyer un message via MSN à Léortien
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...
Léortien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 10h01   #4
Membre confirmé
 
Avatar de mussara
 
Inscription : novembre 2004
Messages : 441
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : novembre 2004
Messages : 441
Points : 299
Points : 299
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)...
mussara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 10h05   #5
Membre confirmé
 
Avatar de mussara
 
Inscription : novembre 2004
Messages : 441
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : novembre 2004
Messages : 441
Points : 299
Points : 299
oui en effet le register_globals est à ON...
mussara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 10h16   #6
Membre actif
 
Inscription : août 2002
Messages : 194
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 194
Points : 194
Points : 194
Envoyer un message via MSN à Léortien
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
; default) in the next version of PHP, because it often leads to security bugs.
; Read http://php.net/manual/en/security.registerglobals.php for further
; information.


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)
Léortien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2007, 16h57   #7
Membre confirmé
 
Avatar de mussara
 
Inscription : novembre 2004
Messages : 441
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : novembre 2004
Messages : 441
Points : 299
Points : 299
merci pour vos réponses qui m'ont beaucoup aidé
mussara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h26.


 
 
 
 
Partenaires

Hébergement Web