IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupération différente d'une variable après formulaire


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( isset($_POST['var1']) ) {$var1 = $_POST['var1'];//je lance le traitement}
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!$var1=="") {//je lance le traitement}
    si vous pouvez m'en dire plus...
    merci beaucoup

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    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...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Points : 216
    Points
    216
    Par défaut
    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...

  4. #4
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    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)...

  5. #5
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    oui en effet le register_globals est à ON...

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Points : 216
    Points
    216
    Par défaut
    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)

  7. #7
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    merci pour vos réponses qui m'ont beaucoup aidé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. actualiser une variable après une saisie dans un formulaire
    Par Onime Records dans le forum Langage
    Réponses: 1
    Dernier message: 02/10/2008, 15h56
  2. récupération d'une variable de formulaire
    Par lodan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/08/2006, 07h51
  3. [Sécurité] Effacer une variable après insertion ?
    Par psychoBob dans le forum Langage
    Réponses: 7
    Dernier message: 23/04/2006, 23h34
  4. Changer une variable $_SESSION -> Formulaire
    Par Nadd dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2006, 23h37
  5. Réponses: 2
    Dernier message: 23/10/2005, 18h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo