FORMULAIRE PHP + VERIFICATION + ENVOI DU MAIL

Signaler
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
 akachi -
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

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
2
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

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
2
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
7
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
2 février 2011

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

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

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

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

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
11
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
17 février 2011

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

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

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
2
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

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

@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
Modérateur
Dernière intervention
30 juillet 2012
30
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

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
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
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

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
Modérateur
Dernière intervention
30 juillet 2012
30
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

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
Modérateur
Dernière intervention
30 juillet 2012
30
$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

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
Modérateur
Dernière intervention
30 juillet 2012
30
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

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
Modérateur
Dernière intervention
30 juillet 2012
30
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
3
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
Modérateur
Dernière intervention
30 juillet 2012
30
# 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
3
T'en es sûr Coucou747 ? ^^
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
30
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

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
3
@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

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

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
Modérateur
Dernière intervention
30 juillet 2012
30
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

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

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

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
Modérateur
Dernière intervention
30 juillet 2012
30
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

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
10
Date d'inscription
vendredi 24 novembre 2000
Statut
Membre
Dernière intervention
2 février 2009

@KLICKSOE

C'était de l'ironie ma question, c'était pour souligné une erreur supplémentaire... :p
hug0_76
Messages postés
10
Date d'inscription
vendredi 24 novembre 2000
Statut
Membre
Dernière intervention
2 février 2009

@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

@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

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
10
Date d'inscription
vendredi 24 novembre 2000
Statut
Membre
Dernière intervention
2 février 2009

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

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

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
Modérateur
Dernière intervention
30 juillet 2012
30
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.