Page 1 sur 1

Problème mail php

Posté : 01 août 2009, 08:39
par CowBoy70
Salut,

Tout d'abord, super forum ... je suis nouveau ; je le trouve beau, complet, etc... :wink:

Bon ... mon petit problème :

J'ai presque fini de créer mon site, un site que je fais pour mon village Villers-les-Luxeuil.
=> http://www.villers-les-luxeuil.fr.nf

Reste encore quelques petits bugs 8-)

Mais ...

J'aimerai faire un formulaire de Contact.
Car juste ça, ça me plait pas beaucoup :

Code : Tout sélectionner

<a href="mailto:[email protected]"><img src="img/email.png" alt="[email protected]" title="[email protected]"/></a>
J'ai donc envi de créer un formulaire de contact, mais qui n'ouvre pas le logiciel de messagerie par défaut ;) .

J'ai déjà bien avancer (d'ailleurs, content d'avoir fait tout ça sans l'aide de personne ^^ ).


Bon, voilà donc le principe :

1.) Le visiteur remplit tout les champs de texte (ou autres) qui sont en HTML & CSS (c'est fini ça normalement).
2.) Ensuite, JavaScript intervient pour voir si tout les champs sont complétés et que l'adresse E-Mail est bonne (du moins valable). Si il y a erreur, JS l'indique donc, le visiteur doit modifié les erreurs pour envoyer l'e-mail (déjà fait également).
3.) Si le visiteur n'a pas JS, alors le formulaire sautera cette étape.
4.) Arrive au PHP.
5.) Le PHP vérifie aussi le formulaire mais moins complet pour les visiteurs n'ayant pas JS (ceux qui l'ont aussi, mais c'est sur que ce sera accepté) (c'est fait aussi).
6.) Ensuite, si il y a erreur, le formulaire ne m'envoie pas l'e-mail. Il renvoi vers une page d'erreur (c'est fait aussi).
7.) Mais si le formulaire est valable, PHP doit alors m'envoyer l'e-mail (c'est pas fais ... je sais pas et j'ai pas trouvé :oops: ).
8.) Je reçoit l'E-Mail (ça, rien a faire ^^ ).

Bon donc les personnes qui pourraient m'indiquer le code à rajouter ... ça serait sympa de leur part :wink:


Je vous passe quand même mes pages (contact.php ; design.css ; traitement.php ; contact.js) :

Contact.php (le HTML) :

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Villers-Les-Luxeuil</title> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <meta name="author" content="CowBoy (ou Aurélien)" /> <meta name="description" content="Le site de Villers-Les-Luxeuil" /> <meta name="keywords" content="villers-les-luxeuil, villers, villers les luxeuil, villers-lès-luxeuil, villers lès luxeuil" /> <meta name="reply-to" content="[email protected]" /> <link rel="start" title="Index" href="index.php" /> <link rel="help" title="Politique d'accessibilité" href="help.php" /> <link rel="shortcut icon" type="image/x-icon" href="img/favicon.gif" /> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" /> <script type="text/javascript" src="javascript.js"></script> <script type="text/javascript" src="contact.js"></script> </head> <body id="body"> <!-- /!\ Division supérieur /!\ --> <div id="DS"> <div id="Titre"></div> <div id="Clocher"></div> <div id="CoteClocher"> <div id="Texte"> <?= file_get_contents('texteaccueil.php'); ?> </div> <div id="Toit"></div></div> <div id="Colonne"></div> </div> <!-- /!\ Division du milieu /!\ --> <div id="DM"> <!-- Menu --> <div id="menu"><?= file_get_contents('menu.php'); ?></div> <!-- Corps --> <div id="corpstexte"> <h1>Contact</h1> <p>Si vous avez des informations, des photos, des suggestions, ... en rapport avec Villers-Les-Luxeuil ou le site, merci de me tenir au courant :</p> <h2>Formulaire de contact</h2> <form method="post" action="traitement.php" onsubmit="return pretraite()" name="FormulaireContact" id="form"> <fieldset id="dp"> <legend>Données Personnelles</legend> <p><label for="nom">Nom : </label> <input type="text" id="nom" name="nom"/></p> <p><label for="prenom">Prénom : </label> <input type="text" id="prenom" name="prenom"/></p> <p><label for="SM">Sexe : </label> <input type="radio" id="SM" name="sexe" value="M" checked="checked"/> <input type="radio" id="SF" name="sexe" value="F"/></p> <p><label for="ml">E-Mail : </label> <input type="text" id="ml" name="ml"/></p> <select id="lieu" name="lieu"> <option value="0">Choisissez votre lieu (le plus précis)</option> <optgroup label="France"> <option value="Villers">Villers-Les-Luxeuil</option> <option value="Haute-Saône">Haute-Saône</option> <option value="AutreF">Autre</option> </optgroup> <optgroup label="Autre pays"> <option value="Canada">Canada</option> <option value="Autre Pays"></option> </optgroup> </select> </fieldset> <fieldset id="com"> <legend>Commentaires / Remarques / Etc...</legend> <p><label for="titre">Titre : </label> <input type="text" id="titre" name="titre"/></p> <p><label for="message">Message : </label> <textarea id="message" name="message" rows="6" cols="50">Votre message ici</textarea></p> <p><input id="ok" type="submit" value="Envoyer"/><input id="reset" type="reset" value="Rénitialiser"/></p> </fieldset> </form> </div> </div> <!-- /!\ Division inférieur /!\ --> <div id="DI"> <div id="Pdp"><?= file_get_contents('pdp.php'); ?></div> <div id="Cyt"><?= file_get_contents('cyt.php'); ?></div> </div> </body> </html>
Design.css (le CSS, mais ça vous serviras à rien :mrgreen: ) :

Code : Tout sélectionner

p { margin:0 0 5px 0; } legend { background-color:silver; } label { width:100px; text-align:right; display:block; float:left; } #dp { background-color:orange; } #com { background-color:orange; } input { border:none; background-color:rgb(224,224,255); } input #ok { background-color:silver; border:2px solid black; } input #reset { background-color:silver; border:2px solid black; } fieldset { margin-left:5px; margin-bottom:10px; } textarea { margin-left:10px; border:1px solid black; }

contact.js (le JS) :

Code : Tout sélectionner

//contact.js function pretraite () { df=document.FormulaireContact msg='' if (df.nom.value=='') {msg+='Nom\n'} if (df.prenom.value=='') {msg+='Prénom\n'} if (df.ml.value=='') {msg+='E-Mail\n'} if (df.lieu.value=='') {msg+='Lieu\n'} if (df.titre.value=='') {msg+='Titre\n'} if (df.message.value=='') {msg+='Message\n'} m=new RegExp('^.*@.*\..{2,3}$') if (!m.test (df.ml.value)) {msg+='E-Mail invalide'} if (msg !='') {alert('Donnée(s) manquante(s) :\n' +msg) return false } else { return true }}

traitement.php (le traitement, c'est ici qui faut rajouter l'envoi ;) ) : '' = 2 apostrophes et non un guillemet

Code : Tout sélectionner

<?php //récupération et vérification des données $sexe=$_POST['sexe']; $msg=''; $nom=$_POST['nom']; if ($nom=='') {$msg.="Nom <br/>\n";} $prenom=$_POST['prenom']; if ($prenom=='') {$msg.="Prenom <br/>\n";} $ml=$_POST['ml']; if ($ml=='') {$msg.="E-Mail <br/>\n";} $lieu=$_POST['lieu']; if ($lieu=='') {$msg.="Lieu <br/>\n";} $titre=$_POST['titre']; if ($titre=='') {$msg.="Titre <br/>\n";} $message=$_POST['message']; if ($message=='') {$msg.="Message <br/>\n";} $m='^.*@.*\..{2,3} $'; if (!ereg($m, $ml)) {$msg.='E-Mail invalide';} if ($msg !='') { //Données incorrectes ; Envoi de la notification $f=fopen('contact.php', 'r'); $c=fread($f,5000); fclose ($f); echo $c. $msg. "\n</body><\n</html>"; } else { // Données correctes //Envoi de l'E-Mail à [email protected] }
Donc, l'envoi de l'E-mail est à cette adresse : [email protected] (et oui ... un peu compliqué ^^ )

Merci d'avance,

J'ai déjà chercher sur google, mais je n'ai pas réussi à y faire quelque chose :-|

Merci
@++
CowBoy

PS: Que pensez-vous de mon site ? (=> sondage)

PS²: :oops: :
si votre question porte sur du code PHP, postez le passage correspondant (une vingtaine de lignes au maximum) sans oublier d'utiliser les balises
[/quote]
Mais maintenant que j'ai tout écrit ... vraiment désolé ... je fais attention la prochaine fois  :(

Re: Problème mail php

Posté : 01 août 2009, 10:32
par FuZZyLine
Salut,
[...]
Bon ... mon petit problème :
J'ai presque fini de créer mon site, un site que je fais pour mon village Villers-les-Luxeuil.
=> http://www.villers-les-luxeuil.fr.nf
Reste encore quelques petits bugs 8-)
Désolé mais voter pour quelque chose de relatif me parait un peu dur en revanche
niveau apparence/affichage avec IE6 c'est: Catastrophique lol Menu > à ma vertiacale écran,
background qui se répète... Je sais IE6 est vieux mais c'est voulu lol
Mais ...
J'aimerai faire un formulaire de Contact.
Car juste ça, ça me plait pas beaucoup :

Code : Tout sélectionner

<a href="mailto:[email protected]"><img src="img/email.png" alt="[email protected]" title="[email protected]"/></a>
J'ai donc envi de créer un formulaire de contact, mais qui n'ouvre pas le logiciel de messagerie par défaut ;) .
J'ai déjà bien avancer (d'ailleurs, content d'avoir fait tout ça sans l'aide de personne ^^ ).
Bon, voilà donc le principe :
[...]
2.) Ensuite, JavaScript intervient pour voir...
3.) Si le visiteur n'a pas JS, alors le formulaire sautera cette étape.
Comme spécifié, tous le monde n'a pas JS d'activé, tes tests doivent être "aussi" et
surtout être au niveau de php. Pour info -> ReLoad et/ou Pression plusieur fois sur le bouton d'envoie.
Bon donc les personnes qui pourraient m'indiquer le code à rajouter ... ça serait sympa de leur part :wink:
Déja la fonction mail: http://a-pellegrini.developpez.com/tutoriels/php/mail/
Ensuite: phpMailler() http://phpmailer.worxware.com/

Je pense qu'on ne fait pas plus complêt pour la gestion de mails.
Merci
@++
CowBoy
@+ et bon code ;)

Re: Problème mail php

Posté : 01 août 2009, 10:46
par CowBoy70
Salut,
Désolé mais voter pour quelque chose de relatif me parait un peu dur en revanche
niveau apparence/affichage avec IE6 c'est: Catastrophique lol Menu > à ma vertiacale écran,
background qui se répète... Je sais IE6 est vieux mais c'est voulu lol
Mais plus personne n'utilise IE6 !
Franchement si tu l'utilises encore ... va falloir que tu le mettes à jour :wink:
Personne de mon village ne l'a, ça c'est presque sûr à 100%.
Je l'ai testé sur FF, IE7, IE8, Safari, et Opéra. Tous ceux-ci fonctionnent.

Ça date de quand IE6 ?

Comme spécifié, tous le monde n'a pas JS d'activé, tes tests doivent être "aussi" et
surtout être au niveau de php.
Il s'y sont quand même pour les utilisateurs n'ayant pas JS :wink:

Pour info -> ReLoad et/ou Pression plusieur fois sur le bouton d'envoie
Je vois pas là ... :?

Merci pour ces liens, je regarde dès que possible :wink:


Pour info : J'ai commencé la programmation web il y a ... environ 3-4 mois maximum et je n'ai que 15 ans. Donc tout ne peux pas être parfait à mon niveau :wink:


Merci,
@++
CowBoy

Re: Problème mail php

Posté : 01 août 2009, 17:33
par thehawk
IE6 représente encore une partie des navigateurs , donc a ne pas négligé !!!

Bye Hawk

Re: Problème mail php

Posté : 01 août 2009, 18:37
par FuZZyLine
Mais plus personne n'utilise IE6 !
Franchement si tu l'utilises encore ... va falloir que tu le mettes à jour :wink:
Personne de mon village ne l'a, ça c'est presque sûr à 100%.
Je l'ai testé sur FF, IE7, IE8, Safari, et Opéra. Tous ceux-ci fonctionnent.
Ça date de quand IE6 ?
Comme indiqué j'ai IE6 (volontairement) justement parcequ'il est encore actif...
chez un certain nombre de users et étant l'un des pire browser qui existe cela m'oblige
à être carré dans le codage. N'oublie pas, non plus, qu'Internet c'est "aussi" pour être
vu par le plus grand nombre. Pour info j'utilise aussi Mosaic, Lynx, ... ;)
Bref, vaste débat lol

Je te disais juste que sous IE6 ton site est catastrophique: Ce n'était pas péjoratif mais
juste une constatation vu que tu semblais vouloir un retour ;)

@Hawk +1 ;)
Pour info -> ReLoad et/ou Pression plusieur fois sur le bouton d'envoie
Je vois pas là ... :?
Le reload est le re-chargement de la page actuelle via le bouton [shift] actualiser
Et la pression... Euh... re-presser le bouton "envoie" avant que le serveur ait traité le formulaire.
Pour info : J'ai commencé la programmation web il y a ... environ 3-4 mois maximum et je n'ai que 15 ans.
Donc tout ne peux pas être parfait à mon niveau :wink:
Jamais dis ca lol Et je le répète ce n'était qu'une constatation, rien de méchant dans mes propos.

@+ bon code ;)

Re: Problème mail php

Posté : 02 août 2009, 01:35
par thehawk
Sous firefox ca correspond a F5 , et a une réactualisation du cache ctrl + F5.

Essaye apres l'envoi d'un formulaire, tu fais F5 et ca renvoi le formulaire ^^ génant ;)

Bye Hawk