Bonjour

Le sujet concerne HTML5, Javascript et PHP.

Quand on fait le bilan, il y a tellement façon de vérifier les champs d'un formulaire avant sa validation, que je suis un peu perdu.

En HTML5, il existe maintenant l'attribut pattern, implanté partout sauf sur Safari.

En Javascript, on peut faire un événement et afficher un message quelconque.

En PHP, on peut utiliser ajax et retourner un message.

Pourrrais-je avoir votre avis? Merci!
Bonjour ledisciple1,

En fait, effectivement il y a beaucoup de moyens mais cela ne veut pas dire qu'une manière remplace l'autre.

Il est de coutume d'effectuer deux vérifications, l'une du côté client et l'autre côté serveur. Celle côté client permet de ne pas flooder le serveur avec des formulaires incomplets ou mal rempli ( pour cette méthode, on peut utiliser l'html5 avec les attributs: type, required et pattern ou le javascript)

En suite côté serveur, on vérifie si les données envoyées sont bien valides et si elles correspondent aux requêtes (if isset($_POST('foo')) )etc...

Pour ma part je pense que cela est vraiment nécessaire pour bien contrôler ce qu'on reçoit sur nos serveurs

Voilà j'espère que mon avis te sera constructif Smiley cligne
Peter-L a écrit :
Celle côté client permet de ne pas flooder le serveur avec des formulaires incomplets ou mal rempli ( pour cette méthode, on peut utiliser l'html5 avec les attributs: type, required et pattern ou le javascript)

Donc selon toi, utiliser ajax (enfin l'objet XMLHttpRequest) pour vérifier le formulaire avant son envoi serait abusif?
salut,
y'a pas vraiment besoin d'Ajax dans ce cas, une simple vérification JS suffit. Tu peux déjà faire profiter les navigateurs comprenant l'attribut HTML pattern en y insérant tes expressions régulières. Tu pourrais ensuite simplement récupérer cet attribut via JS et l'expression régulière qu'il contient pour la tester en JS et faire apparaître un message selon que le formulaire soit valide ou pas.
Par contre la vérification en PHP est indispensable.
oui tout à fait puisque cela ferai une requête pour la vérification puis une autre pour l'envoi... ce serait dommage surtout que l'on peut utiliser d'autres techniques moins gourmandes
En fait, le but du jeu et de ne pas multiplier les lignes de code.

Y a t-il encore un intérêt à utiliser js avec html5 et pattern?

Ne peut-on pas d'une part, utiliser ajax pour vérifier le formulaire avant envoi et réutiliser le même code php après envoi?
connecté
Le problème du html5 est qu'il ne donne pas le pourqoui de l'erreur, il de contente de la signaler. A l'inverse, javascript permet un retour d'erreur personalisé.
Modérateur
ledisciple1 a écrit :
Y a t-il encore un intérêt à utiliser js avec html5 et pattern?

Bonjour, premièrement pattern ne réponds pas de manière optimale à toutes les problématiques. les autres attributs non plus d'ailleurs:

– La validation multi-champs
– La gestion de messages d'erreurs clairs.
– La gestion de l'affichage des erreurs.
– La cohésion entre la gestion native et celle qui doit éventuellement être ajoutée.
– La validation d'E-mail spécifiée dans le HTML viole volontairement les standards de l'E-mail pour offrir une version plus restrictive, mettant au ban plein d'adresses valides.
– La compatibilité, ainsi que le support de certains champs et leur validation associée: par exemple le type number et ses attributs min/max/step.

Pour toutes ces raisons, la gestion native en HTML5 peut vite devenir un enfer. Voici les différentes solutions:
– On considère que c'est tant pis pour les vieux (et les modernes parfois) navigateurs qui ne supportent pas une validation, ça passera par le serveur.
– On désactive la validation native HTML5, on valide tout en javascript, mais en se servant des attributs qui vont bien quand même.
– On remplis les trous avec du javascript là où c'est nécessaire.

à noter qu'il existe des script pour faire ce genre de choses.
Modifié par kustolovic (05 Dec 2013 - 14:13)
En fait, type et pattern ne peuvent gérer que les cas plus ou moins simples. Si on peut s'en contenter c'est tant mieux. Dans la plupart des cas, ça devrait amplement suffire. Par contre là où ça pêche encore un peu si on fait du HTML5 uniquement, c'est pour afficher des messages personnalisés. Les messages par défaut sont malheureusement avares en informations...

Je pense que la meilleure solution est d'utiliser HTML5 tant que possible et boucher les trous avec un script additionnel.

Par contre, utiliser AJAX pour faire de la validation est totalement stupide. Le but de la validation cliente est d'éviter un aller-retour inutile vers le serveur. Si tu fais de l'AJAX, tu fais quand même un aller-retour avec le serveur donc ça ne t'économise rien par rapport à si tu avais soumis le formulaire directement sans validation. Au contraire, ça te fait un aller-retour supplémentaire.

L'exception à ça, c'est si tu dois vérifier par exemple qu'un pseudo est déjà utilisé; là tu n'as pas le choix, tu es obligé de faire appel au serveur...