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 :

Vérification de l'envoi d'un formulaire par son bouton non fiable


Sujet :

Langage PHP

  1. #1
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut Vérification de l'envoi d'un formulaire par son bouton non fiable
    Hello,

    Ce n'est pas une question, mais une mise en garde :

    Si comme moi vous aviez tendance à tester si le formulaire a bien été envoyé par son bouton submit de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( isset( $_POST['nameDuBoutonSubmit'] ) )
    {
       // Traitement
    }
    alors sachez que cette méthode n'est pas fiable du tout.

    Si avec Firefox il n'y a aucun problème, avec IE en revanche, lorsque l'on valide le formulaire avec la touche Entrée, le bouton n'est pas envoyé en POST. Le bouton n'est envoyé que lorsque l'on clique dessus.
    Apparemment Microsoft a cru bon de vouloir différencier la manière dont on validait un formulaire ...

    URL de test : http://josselin.willette.free.fr/cod...es/submitform/

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    houlaaaa très étrange... faut-il encore remercier IE ? >.<

    Merci pour l'avertissement, j'avais jamais fait attention

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Formidable ! Et moi qui passe mon temps à conseiller ça aux débutants sur le forum...

    Quelqu'un a une alternative ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Tu peux utiliser un input hidden (envoi ok) ou bien si un des éléments et obligatoire tu réalises la vérification sur ce dernier.
    Zend PHP5 Certification
    MySQL 4 Core Certification

  5. #5
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    J'ai une idée


    mettre un input Hidden qui lui sera de toute facon envoyé

    <input type="hidden" name="submit" value="true" />

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if( isset($_POST["submit"]) ) {
       // traitements
    }

    EDIT :

    ok j'ai été devancé à la base j'avais fait un post plus long puis j'ai tout recommencé pour faire simple et concret

  6. #6
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Citation Envoyé par darkstar123456
    EDIT :

    ok j'ai été devancé à la base j'avais fait un post plus long puis j'ai tout recommencé pour faire simple et concret
    Tu sais... on dirait pas comme ça... mais cela m'arrive aussi. ^^
    Zend PHP5 Certification
    MySQL 4 Core Certification

  7. #7
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Citation Envoyé par Gats Voir le message
    Tu sais... on dirait pas comme ça... mais cela m'arrive aussi. ^^
    C'est ce qui arrive quand on aime expliquer le pourquoi du comment... enfin je crois ^^

  8. #8
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Le mieux reste effectivement un champ caché ..

    Edit : En fait, n'importe quel champ texte peut faire l'affaire, vu qu'ils sont tous envoyés, mais vides.

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Le mieux est d'utiliser $_SERVER['REQUEST_METHOD'], qui devrait contenir 'post' si la méthode est POST (même s'il y a des paramètres GET)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(strtolower($_SERVER['REQUEST_METHOD']) == 'post')
    {
       ...
    }

  10. #10
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    Pourquoi ne pas tout simplement tester si le $_POST est vide ou pas ?

  11. #11
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Fais comme tu le sens, mais a priori la mainère la plus fiable d'avoir cette information est d'aller la chercher exactement où elle se trouve. Toute méthode alternative a un potentiel d'imprécision ou d'effet de bord (maintenant ou dans le futur).

Discussions similaires

  1. Envoi d'un formulaire par e-mail
    Par Papapetch dans le forum Langage
    Réponses: 21
    Dernier message: 20/03/2008, 17h36
  2. Envoi d'un formulaire par e-mail
    Par Windaube dans le forum Langage
    Réponses: 2
    Dernier message: 09/08/2007, 09h03
  3. Envoi d'un formulaire par mail
    Par Leimi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 02/08/2007, 15h59
  4. envois d'un formulaire par e-mail
    Par adenak dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/03/2007, 15h28
  5. [Mail] Envoi date (datetime) formulaire par email
    Par loady dans le forum Langage
    Réponses: 6
    Dernier message: 13/08/2006, 21h30

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