FORMULAIRE PHP + VERIFICATION + ENVOI DU MAIL

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 19 août 2008 à 06:07
 akachi - 27 déc. 2017 à 10:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47640-formulaire-php-verification-envoi-du-mail

j'ai essayé ton code mais ça me met une erreur bizarre
en plus ça ne me renvoie aucune donnée
si tu pouvais m'aider en verifier pourqu'oi cet erreur à mon poste et pour quoi j'arrive pas à recevoir les mails dans ma boite gmail vu que le mail a été envoyé
Aidez- moi j'ai trop galeré avec l'envoit des mails en php en local; surtout au niveau de la configuration du smtp sous Easyphp
Merci à tous ceux qui me donnerons un coup de pouce
j'ai testé le code apparemment le mail est a été envoyé mais un message d'erreur s'affiche:
Warning: mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. l74sm2154429wmg.2 - gsmtp in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\binaries\home\codesource.php on line 87
shaft_amine Messages postés 58 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 1 février 2018
28 févr. 2013 à 11:09
chahlaoui1amna tu peut installer iis seulement il fonctionne parfaitement avec la fonction email .... OK
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
27 févr. 2013 à 10:42
Salut, tu dois configurer le serveur SMTP avec le SMTP de ton fournisseur d'accès internet.
Par exemple, si tu es chez Orange dans le fichier php.ini, tu modifies la valeur (http://www.php.net/manual/fr/mail.configuration.php#ini.smtp) par ceci :
SMTP = smtp.orange.fr
chahlaoui1amna Messages postés 2 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 27 février 2013
27 févr. 2013 à 10:29
bonjour,
je suis debutant,et je doit faire un site,
a l'exécution de ton code avec WAMP le message indique que "Votre message a bien été envoyé" et il affiche " Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in O:\wamp\www\mail simpleee\mail simple.php on line 42" mais je ne reçois rien
Peux tu m'aider ?
merci d'avence
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
2 févr. 2011 à 21:19
Bonsoir à tous,

A la date du 28/08/2008 14:43:49, j'avais parlé de jQuery, et je crois que personne en prend conscience.
jQuery validate :
La documentation : http://docs.jquery.com/Plugins/Validation
Une petite demo sur ce site : http://jquery.bassistance.de/validate/demo/

Pour moi, coté client, le code html doit être riche en contenu et rien d'autre.
Même pour un formulaire, la librairie (jQuery validate) gère très bien les messages d'erreurs à afficher + les contraintes, nombre de caractère, teste si l'e-mail est valide.
Pas la peine de créer soi même en css des couleurs rouge et des messages d'erreurs ets, ...

Par contre coté serveur (PHP), après le submit, par sécurité, il est bien de refaire des testes.

PS: Pour les débutants, n'oubliez pas que ce code a été posté il y a plusieurs années.
chacmhaal Messages postés 5 Date d'inscription mercredi 16 décembre 2009 Statut Membre Dernière intervention 2 février 2011
2 févr. 2011 à 16:51
alors contrairement à ce que peux dire je ne sais plus quel blaireau, non tous le monde ne sait pas faire ça, moi je débute (je ne sais utiliser que l'include, c'est dire si je débute) et son code m'aide bien et à plusieurs titre notamment pour répondre a ma question de gros débutant: ou place-t-on précisemment les hmtmlentities, reponse que je n'avais trouvé nullepart. Donc ce code est bien utile quand même
cs_Pat_07 Messages postés 4 Date d'inscription mardi 13 février 2007 Statut Membre Dernière intervention 25 janvier 2011
25 janv. 2011 à 14:25
Salut à tous.

Ce code est vraiment super et d'une grande aide.
Le seul truc, c'est que chez moi le bouton Effacer ne fonctionne pas si juste avant on a essayer d'Envoyer le formulaire alors qu'un champ obligatoire n'était pas rempli...
Si vous avez des idées, d'avance merci !

Pat.
babylone7 Messages postés 12 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 16 décembre 2013
29 déc. 2010 à 20:01
Bonsoir Moon,

J'aimerais soumettre ce formulaire et non l'envoyer par mail mais quand j'ajoute "action=mapage.php" dans la balise <form>, du coup il zappe la fonction verif_form, malgré un "return false" dans cette fonction en cas de formulaire incorrect.

Peux-tu m'aider ?

Merci

Florence
patrickbangkok Messages postés 7 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 31 août 2010
18 sept. 2010 à 10:21
Bonjour Moon.
J'ignore si tu encore en ligne mais j'essaye.
Malgre tous ces commentaires "constructifs", j'ai commence a comprendre ton code (je suis un debutant qui cree un site).
A l'execution avec WAMP 2.2 le message indique que le mail a ete envoye mais je ne recois rien dans ma BAL.
Peux tu m'aider ?
Cordialement.
slimani_1 Messages postés 1 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 1 novembre 2009
1 nov. 2009 à 23:23
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\test mail\index.php on line 90
Tout les champs sont valider le mail est envoyé. Merci
Sebounet31 Messages postés 4 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 17 février 2011
13 juil. 2009 à 23:12
et si j'ai une adresse en fr.com? Un 8 pour l'effort mais ça reste un code basique.
tunfilsdepute Messages postés 4 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 24 novembre 2008
15 juin 2009 à 14:26
Une note pour le code et pour l'effort
patdoc63 Messages postés 1 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 18 mars 2009
18 mars 2009 à 18:41
Merci beaucoup ! En tant que débutant j'aprécie beaucoup ce code qui est bien commenté.
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
28 août 2008 à 14:43
Je te conseil le JQuery pour les formulaires.
C'est bien plus propre.
Palleas_44 Messages postés 130 Date d'inscription lundi 12 décembre 2005 Statut Membre Dernière intervention 19 avril 2009
26 août 2008 à 07:23
Mais LOL, cosmoswarezone1 tu sais qu'on voit que le commentaire et la source sont de toi ou pas ? Pourquoi tu viens te mettre un 10/10 ? C'est dingue !
aladeuil Messages postés 17 Date d'inscription mardi 27 décembre 2005 Statut Membre Dernière intervention 5 janvier 2009
26 août 2008 à 06:28
@cosmoswarezone1, si je puis me permettre :
C'est sympa de contribuer mais sur ce coup là, tout le monde sait faire ça. Par contre, il serait bon d'utiliser un html un peu plus moderne, tous les éléments de mise en forme utilisant des attributs DEPRECATED (va faire un tour sur le w3c). Il serait utile aussi de mettre une action sur ton formulaire non ? Ca partirait peut être mieux le post...
Bon courage
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 août 2008 à 04:34
Oo... il s'auto-note, et se felicite lui meme...
aladeuil Messages postés 17 Date d'inscription mardi 27 décembre 2005 Statut Membre Dernière intervention 5 janvier 2009
25 août 2008 à 07:00
Désolé d'être aussi sec, mais la prochaine fois que tu n'as rien à faire l'aprés midi, essaye la sieste. Ce type de code n'apporte pas grand chose au développeur lambda, mon fils sait le faire et il a 12 ans...
Epate nous, tu dois avoir autre chose de plus croustillant, non ?
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
22 août 2008 à 14:34
Salut,

Juste quelques précisions au sujet des coleurs et des polices dans les CSS :

1/ Mieux vaut utiliser les codes couleurs que les noms :

"Use numbers, not names, for colors

Color names also vary from one platform to another. CSS supports 16 color names: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, yellow, white. Some browsers have chosen to support additional color names, but there is no definite list. Therefore, you should: use numbers, not names, for colors . Color names may seem friendlier than the somewhat cryptic RGB notation introduced in the previous chapter, but the Web has yet to see the ultimate list of color names that work on all platforms. Color numbers, on the other hand, can easily be interpreted by any browser."

Source : http://www.w3.org/WAI/GL/css2em.htm#pgfId=46757

2/ Quant à la police, un passage d'un CSS au validateur JigSaw du W3C (http://jigsaw.w3.org/css-validator/) indique, le cas échéant, qu'il faut TOUJOURS préciser un nom de police générique. Ces polices sont indiquées ici : http://www.w3.org/TR/REC-CSS2/fonts.html#generic-font-families
Les autres polices, y compris Verdana, ne SONT PAS génériques. Elles sont présentes sur la plupart des navigateurs, certes. C'est juste dans un soucis de portabilité (en plus de la conformation aux standards).

Voilà, j'ai rien d'autre à dire... Bonne journée :)
cosmoswarezone1 Messages postés 10 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 29 août 2008
21 août 2008 à 18:42
bon voila c'était mon premier code que je met sur le net,
on va dire que sa fait pas mal de temps que je code de temps en temps,
je vois qu'il y a u aucun commentaire positif,
pourtant le formulaire marche et est facil a comprendre,
1/10 c'est vraiment bas comme note.
Vraiment je croyais que ce formulaire serais utiles pour certaine personne.
Alors dsl si sa na pas été le cas, je le laisse quand méme.
Allé A+
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
21 août 2008 à 18:22
en effet, je me suis plante avec !empty sa fonction, c'est not o empty
Optitech Messages postés 134 Date d'inscription samedi 19 octobre 2002 Statut Membre Dernière intervention 3 janvier 2009
21 août 2008 à 18:11
Coucou747 :
"# function verif_null($var){ // fonction qui verifie si le champs est vide
# if($var!=""){
# return true;
# }else{
# return false;
# }
# }
tu recodes la fonction isset"

NON ! Une varaible peut être definit mais avoir comme valeur NULL (c'est trés pratique quand tu fait des arbres) il a juste recodé is_null
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
21 août 2008 à 00:50
$code_syntaxe='^#[0-9]{9,18}#$';

max@max-laptop:~$ php -r "preg_match ('^#[0-9]{9,18}#$', 'toto05050505050505');"

Warning: preg_match(): No ending delimiter '^' found in Command line code on line 1

tu devrais tester avant de mettre a jours...
cosmoswarezone1 Messages postés 10 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 29 août 2008
21 août 2008 à 00:12
les changements que j'ai fait ne te convienne pas?
ma source sert, elle est fonctionnel.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2008 à 20:15
tu pourrais quand meme en tennir compte...
parce-qu'en l'etat, ta source ne sert a rien...
cosmoswarezone1 Messages postés 10 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 29 août 2008
20 août 2008 à 19:54
coucou747
Chacun peu modifier comme il veut les fontctions moi je n'ai pas l'utilité des numéros francais.
Merci pour ta note et pour tes commentaires.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2008 à 17:07
je crois que les numeros de *box ne metchent pas ta regexp.

sinon, 911, 17, etc... ca ne passe pas non plus.
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
20 août 2008 à 16:50
La regex est fausse quoiqu'il en soit si tu cherches à saisir un numéro de téléphone français. On devrait avoir ces possibilités :

^(0([1-6]|8))[0-9]{8}$

Ce qui permet les numéros 01/02/03/04/05/06 ou 08 suivi de 8 chiffres.

++
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2008 à 15:41
# function verif_tel($var) // fonction qui verifie si le n° de tel est correct
# {
# $code_syntaxe='#[0-9]{9,18}#'; // chargement de la syntaxe tel valide
# if(preg_match($code_syntaxe,$var)){ // compare la syntaxe tel valide au tel saisie
# return $var;
# }
# }

mais... non !

une fonction de verif, ca renvoie vrai ou faux... la tu renvoies une chaine ou rien...

function verif_tel($var) // fonction qui verifie si le n° de tel est correct
{
return preg_match('#[0-9]{9,18}#',$var);
}

(et ta regexp est fausse, il manque un ^ au debut, et un $ a la fin, sinon : toto0202020202 est valide)
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
20 août 2008 à 08:48
T'en es sûr Coucou747 ? ^^
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2008 à 06:28
mettre un truc en minuscule, c'est transformer 'A' en 'a', et idem pour toutes les autres lettres de l'alphabet.
cosmoswarezone1 Messages postés 10 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 29 août 2008
19 août 2008 à 22:37
j'ai corrigé le code mais je ne voi pas comment mettre en minuscule le css
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
19 août 2008 à 21:16
@Kliksoe :

>> Il faut mettre <?php car c'est pour PHP5, <? c'est pour le PHP4 et si tu l'utilises sur un serveur en V5, tu risques d'avoir des bugs.

Bien sûr c'est une blague... Rien à voir avec PHP 5 et PHP 4. C'est tout simplement que les short tags peuvent être désactivés sur les configurations de PHP dignes de ce nom, qu'elles soient en PHP 4, PHP 5 ou PHP 6.

>> Pour ton CSS, il faudrait que tu évites de mettre "black", "white" et Cie pour préférer le code en hexadécimal "000", "FFF", ...

Faux ! le code hexadécimal n'est en rien préférable au nom complet en anglais. Bien au contraire même puisque j'avais lu quelque part que le W3C recommandait même leur utilisation plutôt que les codes hexa.

>> Il faudrait aussi que tu rajoutes des polices dans le "FONT-FAMILY", tout le monde n'a pas la police verdana

Enfin le Verdana est une police "safe" celà dit... Si tu avais parlé de Myriad Pro par exemple, j'aurais été d'accord avec toi mais pour du Verdana c'est discutable. De toute façon, avant de se poser la question de la CSS dans son code, il devrait commencer par se poser celle du HTML...
vincent7766 Messages postés 13 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 1 décembre 2008
19 août 2008 à 17:24
dsl, on a besoin des 2 conditions.
vincent7766 Messages postés 13 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 1 décembre 2008
19 août 2008 à 17:22
d'accord je comprend. C'est vrai que c'est logique, il ne peux qu'avoir deux état: existante(1) et non existante(0). Donc pas besoin de faire 2 conditions
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 août 2008 à 17:12
en php0 '' null == false

mais :

0 !== ''
0 !== null
null !== false
false !== ''

c'est une question de typage.

mais sur cette source, l'auteur ne prete pas attention au typa,ge donc renvoyer 0 ou '' c'est pareil.
vincent7766 Messages postés 13 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 1 décembre 2008
19 août 2008 à 16:56
moi ce que je comprend pas c'est la variable foo.
Comment fonctionne t'elle?
Je trouve simple de vérifier qu'une variable n'égal pas undefined et de retourner true si elle existe et false si elle n'existe pas. S'il est possible de m'éclairer; ça serait vraiment apprécier.
cosmoswarezone1 Messages postés 10 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 29 août 2008
19 août 2008 à 16:28
Je suis en pleine correction. meri coucou747
vincent7766 Messages postés 13 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 1 décembre 2008
19 août 2008 à 16:15
Moi je paye un hébergement. Alors je me demandais si c'est moi qui a à changer le php.ini ou si je dois contacter mon hébergeur! J'aimerais vraiment mieux le faire moi même. Car, j'aimerais tester en local avant de poussé le script sur le server.

Merci
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 août 2008 à 15:22
cosmoswarezone1> klicksoe>
<? pose un probleme avec le xml (<? xml ...)
donc si sur un site, t'as du xml et du php, tu ne peux pas mettre <?. donc sur les serveurs qui integrent le xml, on set short tag a off dans le php.ini

ton CSS, j'en ai rien a faire qu'il soit en plusieurs variables, je critique juste le fait qu'il soit en majuscule.

ton code chtml est crade (table, etc..)

# function verif_null($var){ // fonction qui verifie si le champs est vide
# if($var!=""){
# return true;
# }else{
# return false;
# }
# }
tu recodes la fonction isset

et desole, mais if ($foo){ return true; }else{ return false; } plutot que return $foo; c'est une erreur.

tu dis que ce code est pour debutant, or toutes ces erreurs font qu'un debutant prendra de mauvaises habitudes si il lit ton code.

bref, tu demandais des suggestions, t'as mis a jours pour en demander, mais sans rien corriger, et ensuite, une fois que t'as des suggestions, tu ne corriges pas ton code... c'est a n'y rien comprendre.
klicksoe Messages postés 38 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 23 avril 2009
19 août 2008 à 13:42
Je le sais très bien hug0_76 ^^

Mais pour le problème de shaft_amine, le simple fait de modifier le fichier .ini ne suffira peut-être pas justement à cause du test en local.

Apparemment, il a installé le logiciel et basta, pas de config perso (le truc qu'il ne faut jamais faire. Il faut toujours prendre le soins de configurer ses logiciels et pas faire que cliquer sur suivant...).
D'où le fait que je lui dise de mettre ça sur un serveur ^^
Au moins, t'es sûr du résultat si la fonction mail est active sur le serveur en question.
hug0_76 Messages postés 9 Date d'inscription vendredi 24 novembre 2000 Statut Membre Dernière intervention 2 février 2009
19 août 2008 à 12:31
@KLICKSOE

C'était de l'ironie ma question, c'était pour souligné une erreur supplémentaire... :p
hug0_76 Messages postés 9 Date d'inscription vendredi 24 novembre 2000 Statut Membre Dernière intervention 2 février 2009
19 août 2008 à 12:28
@shaft_amine
Ton erreur vient du fait que tu n'as pas de serveur SMTP. La fonction mail() n'arrive pas à créer de socket sur le port 25, en effet dans ta config php.ini le serveur smtp est configuré sur localhost.

D'où ma remarque juste avant ton commentaire ;)!
klicksoe Messages postés 38 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 23 avril 2009
19 août 2008 à 12:23
@hug0_76 : tu as l'erreur de shaft_amine ^^

@Shaft_amine : Tu testes le script en local, certainement avec wamp, easyphp ou autre, mais la fonction mail n'est pas activée, d'où l'erreur.
shaft_amine Messages postés 58 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 1 février 2018
19 août 2008 à 12:06
Salut

j'ai tester votre code lorsque j'exécute j'ai cet erreur

Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in e:\mes sites\test\msn\f mail.php on line 91

Pourriez vous me dire ça vient du quoi ? MERCI
hug0_76 Messages postés 9 Date d'inscription vendredi 24 novembre 2000 Statut Membre Dernière intervention 2 février 2009
19 août 2008 à 10:03
Je ne vais pas faire plus de remarques, juste :
Que se passe t-il lorsque l'envoi du mail à échoué?
klicksoe Messages postés 38 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 23 avril 2009
19 août 2008 à 07:59
Il faut mettre <?php car c'est pour PHP5, <? c'est pour le PHP4 et si tu l'utilises sur un serveur en V5, tu risques d'avoir des bugs.

Pour ton CSS, il faudrait que tu évites de mettre "black", "white" et Cie pour préférer le code en hexadécimal "000", "FFF", ...
Il faudrait aussi que tu rajoutes des polices dans le "FONT-FAMILY", tout le monde n'a pas la police verdana et si tu veux que ton tableau garde ses dimensions, il te faudra bien les choisir ^^ (imagine juste que quelqu'un utilise par défaut la Arial Black ><) et 8pt, c'est un peu petit pour un mail, la valeur par défaut de ce genre de logiciel est 10 et ça marche très bien.
cosmoswarezone1 Messages postés 10 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 29 août 2008
19 août 2008 à 06:22
Salut coucou747

Je doit mettre <?php pour une question de fonctionalité ou de normalité?
car dans tout les cas les résultats est identique.

J'ai préféré utilisé la syntaxe :

#if ($foo){ return true; } else { return false; }

car elle est simple et compréhensible méme pour un débutant afin de comprendre la suite logique de mon code.
Dsl pour le css mais j'ai préféré le stoké dans plusieurs variable juste parceque je trouvé sa plus pratique.
J'ai fait cette source pour qu'elle soit rapidement utilisable méme pour un débutant qui ni connais rien au php.

Merci quand méme pour ton commentaire.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 août 2008 à 06:07
en php, on doit mettre :
<?php et pas <?

a la place de if ($foo){ return true; } else { return false; }
il faut mettre : return $foo; (au pire tu castes en boolean)

ca simplifierait des lignes comme :

# if(preg_match($code_syntaxe,$var)){ // compare la syntaxe tel valide au tel saisie
# return true;
# }else{
# return false;
# }

le CSS doit-etre en minuscule.
Rejoignez-nous