8796 sujets

Développement web côté serveur, CMS

Salut,

Je développe un formulaire, et j'essaie de trouver la solution appropriée pour parvenir à mes fins.

Je dois effectuer plusieurs contrôles sur mon formulaire, comme:

Entrées uniquement numériques ( seulement 6 chiffres )
Validité Adresse mail
Mes champs ne peuvent pas êtres vides

Je me demande quelle méthode est la plus avantageuse, enfin, qui correspond le plus à mes besoins. Soit en PHP, soit en JAVASCRIPT

Je souhaiterais que la personne qui remplit le formulaire soit informée, à la validation de celui-ci, des erreurs qu'il a commis ( par texte, image, couleur... )

J'ai trouvé ceci, http://checkform.imagika.fr/demonstration.html mais je me heurte à certaines limites...

Auriez-vous une méthode accessible ( pour moi comme pour l'utilisateur Smiley cligne )à me conseiller?
Modifié par FranZz (20 Apr 2010 - 13:18)
Tu n'as pas beaucoup de choix au final : tu fais soit les contrôles côté PHP, soit les contrôles côté PHP et javascript. Se contenter des contrôles javascript, c'est la porte ouverte à toutes les failles...
salut

Ajax c'est du javascript. donc si on désactive javascript c'est mort même si la partie serveur est en PHP.

par contre ça peut être bien pour interroger la base , genre cette entrée existe-t-elle déjà en base.

moi j'aurais tendance à dire tourne toi vers les expressions régulières.

les regexp existent sous PHP et javascript. avec quelques différences de syntaxe.

mais pour le coté numérique où non vide les regexp seront très simples.

l'email c'est un peu plus coton mais ça doit se trouver.

l'avantage c'est que une fois que tu as trouvé pour un des 2 langages l'autre sera quasi-pareil

bon courage.
Modifié par CPascal (21 Apr 2010 - 23:28)
Hello,

lorsqu'il s'agit de vérifier que les données sont conformes et que les informations requises sont fournies, la question se pose de faire cette vérification côté client (javascript) ou côté serveur (PHP)

L'intérêt de le faire côté client est la rapidité du javascript qui permet de donner une réponse instantané lors d'une tentative de soumission de formulaire; le revers de la médaille c'est que le javascript peut être manipulé ou désactivé, donc problème de sécurité...

L'intérêt de le faire côté serveur est la sécurité: les informations, une fois transmises, sont analysées par le serveur sans possibilité d'intervention externe...

Au final on peut évaluer l'intérêt de chaque méthode en fonction des enjeux (rapidité, sécurité). Il sera parfois nécessaire d'implémenter les deux façons de faire. ^^
Il faut d'office effectuer les contrôles côté serveur et éventuellement côté client pour donner un peu plus d'interactivité.

Pour vérifier une adresse e-mail en PHP, y a une fonctione toute simple (PHP 5 >= 5.2.0) :

filter_var('bob@example.com', FILTER_VALIDATE_EMAIL);
Si tu utilises html5, tu peux utiliser les nouveaux types de champs.

Ils sont rétro-compatibles avec les navigateurs actuels, Opera 10.5 les reconnaît pour la vérif au moment de l'envoi (les autres devraient faire de même à terme).

Ça ne dispense pas de faire un contrôle côté serveur ou d'utiliser javascript pour ceux qui reconnaissent pas encore ces inputs. Smiley cligne
Hello,

Il faut TOUJOURS faire les vérifications coté serveur. Tout ce qui se trouve dans le HTML ou le Javascript peut être modifié par le client. En terme de sécurité c'est une régle très simple mais trés importante : il faut toujours vérifier les données envoyées par un formulaire, et les vérifier coté serveur.

Ensuite, tu peux améliorer le confort de l'utilisateur en lui ajoutant une vérification automatique en Javascript coté client, mais ca ne reste qu'une surcouche de confort pour l'utilisateur, et ne doit en aucun cas être ta seule vérification des informations.

Tu peux aussi remplacer cette vérification Javascript par les nouveaux types de champs comme soufflé par Patidou, mais là encore ce n'est que la cerise sur le gateau, les vérifications seront de toute façons faites coté serveur.