PHP - formulaire e-mail à corriger
Résolu/Fermé
Gizmil
Messages postés
706
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
3 octobre 2022
-
15 nov. 2010 à 18:42
Gizmil Messages postés 706 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 3 octobre 2022 - 19 nov. 2010 à 00:08
Gizmil Messages postés 706 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 3 octobre 2022 - 19 nov. 2010 à 00:08
A voir également:
- PHP - formulaire e-mail à corriger
- Yahoo mail - Accueil - Mail
- É - Guide
- Publipostage mail - Accueil - Word
- Formulaire de réclamation facebook - Guide
- Windows live mail - Télécharger - Mail
9 réponses
lalouviere84
Messages postés
116
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
19 janvier 2011
24
16 nov. 2010 à 19:02
16 nov. 2010 à 19:02
Salut,
Je connais deux sites qui te proposent de générer des formulaires en ligne :
https://www.jotform.com/ (éditeur type wysiwyg)
http://www.ge-net.ch/page/rw-wfco-owb-0.html (éditeur en ligne)
ça t'aidera peut être ...
Je connais deux sites qui te proposent de générer des formulaires en ligne :
https://www.jotform.com/ (éditeur type wysiwyg)
http://www.ge-net.ch/page/rw-wfco-owb-0.html (éditeur en ligne)
ça t'aidera peut être ...
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
17 nov. 2010 à 19:08
17 nov. 2010 à 19:08
Vade Retro, graphiste !
Pardon, je plaisante bien sûr. Je sais que ActionScript et JavaScript sont très proches ; il n'y pas d'expressions régulières en ActionScript ?
Je le redis, ce n'est que côté client que tu pourras empêcher la soumission du formulaire. Un script PHP (donc côté serveur) peut décider si les données sont correctes ou pas, mais pour ça, il faut qu'il ait déjà reçu les données.
J'espère que c'est plus clair ;)
Pardon, je plaisante bien sûr. Je sais que ActionScript et JavaScript sont très proches ; il n'y pas d'expressions régulières en ActionScript ?
Je le redis, ce n'est que côté client que tu pourras empêcher la soumission du formulaire. Un script PHP (donc côté serveur) peut décider si les données sont correctes ou pas, mais pour ça, il faut qu'il ait déjà reçu les données.
J'espère que c'est plus clair ;)
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
15 nov. 2010 à 19:45
15 nov. 2010 à 19:45
Salut,
je n'ai regardé que la partie javaScript de ton code. En effet, seul le script côté client permet d'empêcher l'envoi du formulaire si besoin.
Dans un premier temps, Sais-tu qu'il y a moyen de vérifier que l'adresse email est correcte en une seule ligne de code ? Regarde par-là : Expressions régulières.
Un exemple concret :
Ceci nous permet déjà d'éliminer près de 40 lignes de code, donc autant de chances de virer ce qui ne marche pas :P
La suite demain ;)
je n'ai regardé que la partie javaScript de ton code. En effet, seul le script côté client permet d'empêcher l'envoi du formulaire si besoin.
Dans un premier temps, Sais-tu qu'il y a moyen de vérifier que l'adresse email est correcte en une seule ligne de code ? Regarde par-là : Expressions régulières.
Un exemple concret :
/^\s*[\w.]+@[\w]+\.\w{2,5}\s*$/.test("mon_adresse.123@mon_site.com")
Ceci nous permet déjà d'éliminer près de 40 lignes de code, donc autant de chances de virer ce qui ne marche pas :P
La suite demain ;)
coeus
Messages postés
3021
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2013
119
15 nov. 2010 à 20:04
15 nov. 2010 à 20:04
Un moyen simple de voir si tous les champs ont été remplis dans ton formulaire est de créer une boucle en PHP :
Ça ne te dira pas (dans la forme actuelle) quels champs n'ont pas été remplis ou lesquels ont été mal remplis, mais ça t'avertit si des champs sont restés vides.
Sinon, je seconde Groarh : va voir les expressions régulières. C'est difficile à se souvenir, mais une fois que tu connais, ça te sauve une infinité de temps et de misères !
$call = true; foreach ($_POST as $key => $element) { if (!isset($element) || $element == '')) { $call = false; } } if ($call) { // Enclenche les opérations normales d'envoi de formulaire... } else { print 'Message d'erreur'; }
Ça ne te dira pas (dans la forme actuelle) quels champs n'ont pas été remplis ou lesquels ont été mal remplis, mais ça t'avertit si des champs sont restés vides.
Sinon, je seconde Groarh : va voir les expressions régulières. C'est difficile à se souvenir, mais une fois que tu connais, ça te sauve une infinité de temps et de misères !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
16 nov. 2010 à 10:52
16 nov. 2010 à 10:52
Je rajouterais une chose que j'ai oubliée hier :
le JavaScript (côté client) permet de contrôler la validité des champs avant l'envoi du formulaire, mais seulement si l'utilisateur a activé JavaScript sur son navigateur, donc il faut faire un autre contrôle en PHP (côté serveur).
On peut aussi tomber sur un développeur web qui a des outils comme Firebug ou la Webdev Toolbar, et qui, par malveillance ou juste curiosité (et ce n'est pas si rare qu'on le croit !), modifie la valeur des champs hidden, par exemple, ou alors supprime un attribut readonly... Il peut également être capable d'intervenir directement sur les paramètres de la requête, aussi bien en POST qu'en GET.
Le double contrôle est un réflexe à acquérir : ne jamais faire confiance à ce qui provient de la machine du client.
;)
le JavaScript (côté client) permet de contrôler la validité des champs avant l'envoi du formulaire, mais seulement si l'utilisateur a activé JavaScript sur son navigateur, donc il faut faire un autre contrôle en PHP (côté serveur).
On peut aussi tomber sur un développeur web qui a des outils comme Firebug ou la Webdev Toolbar, et qui, par malveillance ou juste curiosité (et ce n'est pas si rare qu'on le croit !), modifie la valeur des champs hidden, par exemple, ou alors supprime un attribut readonly... Il peut également être capable d'intervenir directement sur les paramètres de la requête, aussi bien en POST qu'en GET.
Le double contrôle est un réflexe à acquérir : ne jamais faire confiance à ce qui provient de la machine du client.
;)
coeus
Messages postés
3021
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2013
119
16 nov. 2010 à 14:54
16 nov. 2010 à 14:54
Je viens de remarquer quelque chose...
Je vois des input qui ont l'attribut value="Votre Message :"...
C'est une très mauvaise idée de mettre des caractères comme le ":" dans un attribut HTML. Déjà que c'est une mauvaise idée de mettre des caractères accentués à cet endroit... Ça peut faire planter ton script assez facilement.
Mes deux cennes en passant ;)
Je vois des input qui ont l'attribut value="Votre Message :"...
C'est une très mauvaise idée de mettre des caractères comme le ":" dans un attribut HTML. Déjà que c'est une mauvaise idée de mettre des caractères accentués à cet endroit... Ça peut faire planter ton script assez facilement.
Mes deux cennes en passant ;)
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
16 nov. 2010 à 17:08
16 nov. 2010 à 17:08
@coeus>
Aucun problème tant qu'on sait dans quel encodage on travaille. En l'occurence il s'agit de ISO-8859-1, donc le caractère € est interdit, mais les accents ne poseront pas de soucis, et le ":" encore moins. Quant à JavaScript, il traite les attributs HTML comme des chaînes.
;)
Aucun problème tant qu'on sait dans quel encodage on travaille. En l'occurence il s'agit de ISO-8859-1, donc le caractère € est interdit, mais les accents ne poseront pas de soucis, et le ":" encore moins. Quant à JavaScript, il traite les attributs HTML comme des chaînes.
;)
coeus
Messages postés
3021
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2013
119
16 nov. 2010 à 18:13
16 nov. 2010 à 18:13
C'est sûr qu'il y a toujours des moyens de prévenir les problèmes. Personnellement j'aime mieux m'abstenir, j'essaie de faire en sorte que tout marche dans un maximum de cas possibles, par exemple en faisant en sorte de pouvoir changer mon encodage sans rien faire planter. J'imagine que ça ne m'arrivera jamais d'avoir besoin de faire une telle chose, mais...
En bref, je suis d'accord à toute fin pratique avec ce que tu dis. C'est juste que je me suis développpé une éthique personnelle qui me l'interdit ;-)
Et je susi d'accord que des caractères comme le ":" n'a que très peu d'incidence ultimement. Mais par principe je le classe dans la même catégorie que tous les caractères illégaux. Même chose pour les espaces et le reste de la ponctuation en général.
En bref, je suis d'accord à toute fin pratique avec ce que tu dis. C'est juste que je me suis développpé une éthique personnelle qui me l'interdit ;-)
Et je susi d'accord que des caractères comme le ":" n'a que très peu d'incidence ultimement. Mais par principe je le classe dans la même catégorie que tous les caractères illégaux. Même chose pour les espaces et le reste de la ponctuation en général.
Gizmil
Messages postés
706
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
3 octobre 2022
65
Modifié par Gizmil le 16/11/2010 à 23:08
Modifié par Gizmil le 16/11/2010 à 23:08
Hello, me revoilà !
Bon, les petits gars, je vous aime beaucoup... :-P ...mais je n'y connais rien en PHP donc je ne dirais pas que vous me parlez chinois car je touche un peu à la programmation ActionScript mais je suis graphiste avant d'être informaticien et, là, je dois dire que je vais avoir un peu de mal à appliquer vos conseils ! En fait, j'ai peu de temps à consacrer à la recherche car mon client attend son petit formulaire en état de marche !
Puisque la "réparation" de ce formulaire semble plus complexe que je le pensais, est-ce que vous ne pourriez pas me guider vers un générateur de formulaire plus compétent que celui que j'ai utilisé ?
Merci beaucoup néanmoins pour vos efforts concernant mon script (faut vraiment que je prenne des cours de PHP) ! (-;
Bon, les petits gars, je vous aime beaucoup... :-P ...mais je n'y connais rien en PHP donc je ne dirais pas que vous me parlez chinois car je touche un peu à la programmation ActionScript mais je suis graphiste avant d'être informaticien et, là, je dois dire que je vais avoir un peu de mal à appliquer vos conseils ! En fait, j'ai peu de temps à consacrer à la recherche car mon client attend son petit formulaire en état de marche !
Puisque la "réparation" de ce formulaire semble plus complexe que je le pensais, est-ce que vous ne pourriez pas me guider vers un générateur de formulaire plus compétent que celui que j'ai utilisé ?
Merci beaucoup néanmoins pour vos efforts concernant mon script (faut vraiment que je prenne des cours de PHP) ! (-;
Gizmil
Messages postés
706
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
3 octobre 2022
65
19 nov. 2010 à 00:08
19 nov. 2010 à 00:08
Vi vi, c'est plus clair !! Ca ne m'aide pas mais c'est plus clair ! mdr
Non, non, moi aussi, je plaisante ! XD
En effet, je devrais peut-être m'intéresser au javascript (oui, aussi) !
En passant, merci à La Louvière84, le deuxième lien proposé m'a apporté entière satisfaction !! (-;
Non, non, moi aussi, je plaisante ! XD
En effet, je devrais peut-être m'intéresser au javascript (oui, aussi) !
En passant, merci à La Louvière84, le deuxième lien proposé m'a apporté entière satisfaction !! (-;