Tutoriel vidéo PHP : Formulaire de contact en PHP

Dans ce tutoriel vidéo vous apprendrez à coder un formulaire de contact qui soit utilisable. Dans un premier temps, nous verrons la création d'un formulaire XHTML permettant à l'internaute la saisie des informations. Dans un deuxième temps, nous verrons le traitement de ces informations via un script PHP qui enverra le contenu du formulaire par mail.

Tags : PhpFormulaireFormMailContactEmail

Tutoriel PHP posté Mercredi 09 Avril 2008
 118 Commentaires

 

Partager

Ils l'ont utilisé

 

Publicité

 

Vos commentaires

Joomweb (Vendredi 08 Août 2008 à 19:36):

Tuto tres clair qui permet d'avoir un aperçu de l'utilité du PHP et donne vraiment envie d'apprendre se langage.
Très bon boulot!!!!
Vivement le prochain tuto PHP (ou autre ^^).

psylune (Vendredi 08 Août 2008 à 19:36):

par principe quand tu vois le truc, c'est bien fait et tout tu te dis c'est bon tu va gérer toi aussi...
en l'espece...j'ai fait le tout début et aprés j'ai abandonné :d je crois que j'ai pas le bon pc pour faire ca xd

JonStark (Vendredi 08 Août 2008 à 19:36):

En l'espèce... saleté de juriste

nitro007 (Mercredi 13 Août 2008 à 21:24):

Merci cela ma aidé a faire, si les champs ne sont pas remplis-> message d'erreur !

Gym (Jeudi 28 Août 2008 à 13:05):

merçi pour ce video!

Joomweb (Mardi 02 Septembre 2008 à 18:29):

Comme d'habitude! tres bon tuto! Vivement les tuto flash!

st.photographiste (Dimanche 21 Septembre 2008 à 12:51):

Un grand merçi pour l'aide que tu apportes grâce à tes tutos et spécialement celui-ci.
Tellement excellent que j'aimerai rajouté une liste déroulante , je connais le code html et j'ai un script php MAIS, il y a toujours un "mais" , (pauvre de moi), je n'arrive pas a faire coïncidé ton script php avec le mien, crois tu pouvoir faire quelque chose ?

en espérant une réponse
un grand bravo

Grafikart (Dimanche 21 Septembre 2008 à 13:19):

@st.photographiste : Pas trop compris ta question
Si c'est pour la récupération de l'option sélectionné dans la liste déroulante il faut donner un nom au select genre :
<select name="test">

et à chaque option de la liste attribué une valeur :
<option value="1">element 1</option>

Puis dans le script PHP tu récup^ère grace à : $_POST['test']

bob (Dimanche 21 Septembre 2008 à 17:29):

j'ai telechargé ton code maintenant ça marche ....mis à part que je ne recois pas de mail lorsque je teste sur le serveur en ligne ....

bob (Dimanche 21 Septembre 2008 à 17:39):

je viens de trouver ....l'erreur de ma vie a été de prendre pour opérateur et messagerie AOL . Mille excuse pour le dérangement.
Et dire que ça faisait 2 semaines que je testais la réalisation de divers formulaire .
Sur les autres adresses styles hotmail .... CA MARCHE .
MERCI

ST.PhotoGraphiste (Lundi 22 Septembre 2008 à 07:42):

Merci pour la réponse aussi rapide,
désolé pour la mauvaise compréhension :-( je débute avec le php
mais grâce à mr raton laveur j'avance plus vite ;-)
je crois que tu viens de m'offrir la solution $_POST['test'],
je vais faire des tests...
UN GRAND MERCI !!!!!!!

Grafikart (Lundi 22 Septembre 2008 à 08:40):

L'astuce quand on a un problème en PHP c'est d'afficher les variable pour voir si elles sont bien définit et pour voir si tout se passe bien. Après c'est une question de feeling mais l'idée c'est de trouver le truc qui fait planter pour ensuite trouver le "bug" et sa solution

bob (Lundi 22 Septembre 2008 à 21:27):

J'ai un nouveau problème. Je ne reçois pas le formulaire sur aol ni sur live.fr. comment on peut faire pour que le formulaire envoyé arrive bien sans être stoppé. Même Msn me met un message d'alerte : pas de Sender ID.
Que faire ?

ST.PhotoGraphiste (Lundi 22 Septembre 2008 à 23:25):

Trop génial !!!!
j'ai réussi grâce à mr raton laveur ( et moi qui aimer pas ses bestioles ;-) ) seul les idiots ne change pas d'avis
UN GRAND MERCI (VRAIMENT):-)
j'ai réalisé un test est ça fonctionne ( je dois avoir, finalement un peu de feeling ;-)
j'ai cherché toute la journée ( ne pas se moquer svp ;-)
mais j'ai trouvé se foutu (oups )se vilain "bug" que j'ai pulvérisé :-)
je suis ravie d'avoir découvert ton site, blog ... enfin ton adresse
merci merci merci merci

Babou (Dimanche 05 Octobre 2008 à 13:57):

Salut,

Je ne peux pas modifié la hauteur du cadre blanc pour le message, voici mon code : Message :</b><textarea name="message" cols="35" rev="15"></textarea><br/>

Grafikart (Dimanche 05 Octobre 2008 à 14:02):

<textarea name="message" cols="35" row="15">

c'est row pas rel

Babou (Dimanche 05 Octobre 2008 à 15:16):

Merci Raton Laveur :D Ca marche parfaitement

bob (Vendredi 24 Octobre 2008 à 18:40):

bonjour
j'aimerais savoir comment réaliser un formulaire, nonplus pour l'envoi d'info par mail mais comme celui-ci ou ma question s'affiche .....
Raton tu peux me donner des indications pour les codes .... Ou bien des codes tout fait où est ce que je peux trouver ça ?
Merci

Grafikart (Mardi 11 Novembre 2008 à 00:50):

L'ajout de commentaire nécessite la création de base de donnée et ce n'est pas évident. Donc je ne pense pas que tu trouve des codes tout fait. Je te conseille de te documenter sur MySql et PHP

chris (Mardi 11 Novembre 2008 à 18:15):

bonjour, il est vraiment super ton tuto.

Pourrais tu me dire, comment je pourrais faire avec une liste déroulante qui reprend 2 adresses email pour que le script php puisse en tenir compte. Car j'ai aussi une autre liste déroulante pour les sujets où il y en a 3 différents.
Merci d'avance pour ton aide

louijes (Mercredi 17 Décembre 2008 à 14:42):

Salut j'ai observé avec un grand intérêt ce tuto.
Cependant sur mon serveur local qui est easyphp 1.8 il y a le message suivant qui s'affiche. (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 c:\program files\easyphp1.8\www\formulaire1\contact.php on line 16
Le mail a bien été envoyé.)
Comment corrigé cette erreur?

Harry (Jeudi 25 Décembre 2008 à 23:13):

Ta fonction mail() n'est pas activé.

sanazaka (Jeudi 01 Janvier 2009 à 12:51):

merci
je vais tester

Babou (Vendredi 02 Janvier 2009 à 23:25):

Salut

Ca marche super bien, mais par contre j'aimerai savoir si tu connais un code, qui permet de vérifier l'adresse donc par exemple :
Message d'erreur : Votre adresse email n'est pas correcte, en gros y faut que le "@" apparaisse tu vois ce que je veux dire ? Y me faudrait quelque chose comme sa si tu as
Merci :D

Ah aussi sur le contact.php on peux rajouter une redirection automatique, si cela intérresse quelqu'un le voici :
A placer dans les balises "<head></head>"
<meta HTTP-EQUIV="REFRESH" CONTENT="4; URL=http://guillaume.bonhoure.free.fr/contact/contact.html ">

fafa33 (Lundi 19 Janvier 2009 à 14:24):

Super tuto, je débute en php et j'ai une petite question pour savoir comment faire, quand on valide le formulaire (ou s'il n'est pas bien rempli), pour afficher le message d'erreur sur la même page ou un popup et non sur une page blanche... par avance merci

Max13 (Mardi 20 Janvier 2009 à 22:44):

Merci beaucoup pour ce tutorial très bien expliqué. Cependant tout fonctionne très bien (le mail est envoyé vers une adresse gmail) mais il n'arrive pas à destination. Je possède un hébergement 60GP chez OVH. Je cherche des solutions mais je ne trouve pas.
Pourriez vous m'aider?
Merci d'avance

HotSkill (Samedi 24 Janvier 2009 à 19:16):

Moi j'aurais plus faite un code de ce style là à, il est seulement en une page qu'on peut appeler contact.php et avec quelque modification qui le rend plus agréable

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ton titre ici</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<style type="text/css">

</style>
</head>

<body>





<?php

if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])){
$nom = htmlspecialchars($_POST['nom']);
$message = htmlspecialchars(trim($_POST['message']));
$email = htmlspecialchars($_POST['email']);
#Verification de la validité de l'email#
if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email)) //si l'email est valide
{



if(!empty($nom) && !empty($email) && !empty($message)){
$message=str_replace("\'","'",$message);
$destinataire="adresse@extantion.com";
$sujet="Formulaire de contact";
$message="Une nouvelle question est arrivée \n
Nom : $nom \n
Email : $email \n
Message: $message";
$entete="From: $nom \n Reply-To: $email";
mail(utf8_decode($destinataire),utf8_decode($sujet),utf8_decode($message),utf8_decode($entete));
$a= "<p>Le mail a bien été envoyé.</p>";
}
else{
$erreur .= "<p>Veuillez remplir tous les champs.</p>";
}

}
else{
$erreur .= "<p>Votre adresse email est invalide.</p>";
}

}
if(isset($a))

{

echo "<font color='green'>$a</font>";

}
if(isset($erreur))

{

echo "<font color='red'>$erreur</font>";

}
?>

<form action="<?php echo $_SERVER['PHP_SELF'];?>"method="post">
<label for="nom">Nom:</label><input type="text" name="nom" id="nom"/><br />
<label for="email">Email:</label><input type="text" name="email" id="email" /><br />
<label for="message">Message :</label><textarea name="message" cols="30" rows="15" id="message" ></textarea><br/>
<input type="submit" value="Envoyer" />
</form>






</body>
</html>


mais sa reste quand même un bon tuto je me suis inspiré de ton tuto pour créer ce code source donc je te dit merci pour toute tes tutos ils sont génial :-)

Ghost (Mercredi 28 Janvier 2009 à 17:14):

(isset ($_POST)) sert à rien si tu vérifie les autres

isodelta (Mardi 03 Février 2009 à 12:16):

Bonjour Grafikart.
Merci pour vos tutoriels. Je n'ai pas compris le principe de la précaution contre les attaques d'injection de code dans les formulaires. Vous en parlez entre la minute 20 et 21 de la vidéo. Pouvez-vous m'éclarcir à ce sujet ? merci.

birout42 (Vendredi 06 Février 2009 à 20:45):

énorme un grand merci a toi, exactement ce dont j'avais besoin. =)

Al0011 (Mercredi 11 Février 2009 à 19:12):

Voila je viens de découvrir ton site par webdesign-tutoriaux et tes tutos sont vraiment bien fait et expliqués c'est pourquoi je te dis un grand merci.

celsus (Jeudi 12 Février 2009 à 13:40):

Salut jojo et bravo pour ton site.
J'ai repris ton code pour un site que je fais en ce moment et ça march comme sur des roulettes mais, étant une cave en php je ne sais pas comment faire pour ajouter des champs (qui correspondent avec le code php) mais surtout pour améliorer la page "votre message a bien été envoyé"

Merci d'avance

Grafikart (Jeudi 12 Février 2009 à 23:50):

@Celsus : Désolé, pour faire évoluer le code il faut essayer de se débrouiller tout seul avec les bases données dans ce tutoriels...
C'est en forgeant...

muchalucha (Lundi 16 Février 2009 à 13:57):

Bonjour, j'ai testé en ligne et quand j'envoie le navigateur m'ouvre une fenêtre avec ce message : "Ouvertue de contact.php - Que doit faire firefox avec ce fichier?". Pouvez-vous m'aider, merci.

Grafikart (Lundi 16 Février 2009 à 18:10):

@muchalucha : Il faut utiliser un serveur apache pour héberger et faire fonctionner du PHP. Si tu veux faire des test en local je t'invite à regarder le tutoriel concernant l'installation de Wamp dans la section PHP.

dayski (Vendredi 27 Février 2009 à 10:45):

t'est le méilleur comme formateur,plus de tuto slp, aussi sur la securité d'administrateur.
mérci

lyes (Dimanche 01 Mars 2009 à 17:42):

bonjour, wamp m'affiche cette erreur :
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\contact\contact.php on line 14

c'est du a quoi ?

merci beacoup !

Grafikart (Dimanche 01 Mars 2009 à 18:28):

@lyes : L'explication est donnée dans le tutoriel. Wamp n'a pas de serveur SMTP et ne peux donc envoyer aucun mail...

lyes (Lundi 02 Mars 2009 à 13:59):

Ah d'accord, excusez-moi de ne pas l'avoir écouté dans le tuto

y'aurait-il une solution pour wamp ?

merci d'avoir répondu monsieur raton laveur ! :P

lyes (Lundi 02 Mars 2009 à 14:04):

oups !
excusez d'voir mi un double post, c'est pour une question...
Au lieu de m'enoyer le message par email, pourrait-on l'enregistrer dans la base de donnée ou dans un fichier texte.....

merci beaucoup d'avance!

(oui, je sais...ce n'est pas un forum...ici)

Grafikart (Lundi 02 Mars 2009 à 14:45):

@Lyes : Evidemment qu'on peut
Tu peux t'inspirer du tutoriel sur le livre d'or pour la marche à suivre.

lyes (Lundi 02 Mars 2009 à 15:21):

merci beaucoup monsieur raton laveur ! je vais voir le tuto !

Petrus (Mercredi 04 Mars 2009 à 08:02):

salut,
merci bcp pour la video. je suis débutant et avoir des explications orales pdt l'avancée du tuto c'est vraiment super !
j'ai l'impression qu'il y a une petite erreur dans le code, je voulais donc en faire profiter tout le monde.
je crois qu'il faut un point virgule à la fin de cette ligne --> echo "Le message a bien été envoyé."
en tout cas dans mon code, si je ne le mets pas ça ne fonctionne pas.

muchalucha (Jeudi 05 Mars 2009 à 09:22):

H!
Une fois que j'envoie mon message, j'ai ce message :
Le mail a bien été envoyé . Je suis sur mac Os 10.

muchalucha (Jeudi 05 Mars 2009 à 09:32):

Re-H!
J'ai trouvé une solution pour le message "Le mail a bien été envoyé".
Est-il possible que ce message s'ouvre sur une nouvelle page?

muchalucha (Samedi 07 Mars 2009 à 09:10):

Hello,
Je suis vraiment mauvais en code (mais je fais ce que peut!). Comment fait-on pour rendre un champ texte non obligatoire, merci.

Fred (Dimanche 08 Mars 2009 à 05:58):

Muchalucha il le dit dans la vidéo : ligne 3 et ligne 5 : tu retire simplement la variable si il y en a une pour la quel tu veux pas qu'il te le signal que tel ou tel champs n'est pas remplis...

Relativement simple, çà j'en ais déjà fais quelque s'un lol mais je m'attendais a voir le script et a (j'esperais) comprendre le fameux système de captcha mais pas de chance pour moi y n'y est pas moinnn lol !

Néanmoin très bon tuto comme d'hab, tu devrais en faire plus car tu est 1 très bon prof par l'intermediaire de tes p'tites vidéo lol çà cartonne ;-)

Merci quand même beau boulot

Grafikart (Dimanche 08 Mars 2009 à 15:04):

@Fred : Je n'aime pas du tout les captcha et il y a d'autres moyens de lutter contre le spam. Un champ caché en CSS, des champs qui s'ajoute en javascript... Je détaillerais peut être ça dans un futur tutoriel

Silo (Lundi 09 Mars 2009 à 22:44):

Sans protection contre le spam, ce code est il me semble quasi innutilisable, a part pour recevoir des lettres qui nous sont pas reelement destinee...

Grafikart (Lundi 09 Mars 2009 à 23:39):

@Silo : Ce code n'a pas pour vocation d'être utilisé tel quel. C'est un tutoriel, il sert à apprendre. Si tu veux l'utiliser rien ne t'empêche d'utiliser Google pour trouver différentes techniques pour le contrer...

Silo (Mardi 10 Mars 2009 à 11:52):

Bonjour Grafikart
J aimerai bien l utiliser effectivement, mais s entrainer a faire sans securité(c est s entrainer avec de mauvaises habitudes), et necessite de tout r apprendre par derriere. Il y a 5 ans en arriere j avais appris a le faire avec les manieres non securisee et aujourd hui je suis bloqué, malheureusement,car cette maniere precise ne me sert "a rien", je dois reprendre a presque 0. J avais finalement opté pour l solution chez devparadise qui offrait ce service sur leur serveur avec un cgi-bin .pl
qui me semblait convenable mais aujourd hui il ne propose plus ce service, et les autres sites qui le propose semble un peu louche, ressemblant a des sites fantomes avec leur lois et conditions "internationale" comme ils disent, ils n ont pas d email, pas de vrai adresse, pas de tel, et on sais pas d ou ils viennent ni si ils utilisent les informations qui transite par eux... donc je suis un peu perdu.

Grafikart (Mardi 10 Mars 2009 à 12:55):

@Silo : Si tu veux lutter contre le spam il faut déja que tu vérifie que les champs email et tout son valides (déja explicité dans le tuto), ça filtre les robots qui remplissent n'importe comment.

Ensuite tu met un champ qui ne doit pas être remplit et que tu cache en CSS (avec un display:none), les robots ne voient pas le CSS et remplissent tout par défaut. Après en PHP si tu vois que le champ a été remplit, tu sais que c'est un robots.

Tu peux aussi utiliser javascript pour créer le bouton d'envoi par exemple.

Enfin, tu peux utiliser un champ ou on doit mettre la réponse à une question facile (genre: sais tu lire ?)

En ce sens, ce qui est dit dans le tutoriel est suffisant pour mettre en place ses propres techniques pour lutter contre le spam. A toi de voir comment gérer ça.

Bonne chance.

Silo (Mardi 10 Mars 2009 à 21:22):

Grafikart, oui merci pour les tips mais j ai lu qu il pouvait avoir tellement de failles, et qu il faut ajouter beaucoup de code differents pour arriver a un resultat optimal, qu il vaut mieux savoir ce qu on fait pour ne pas se faire utiliser son adresse par les spammeurs !, et envoyer des miliers de spamm avec sa propre adresse email involontairement, et ensuite risquer des ennuis avec son hebergeur et son F.A.I ! Donc la securité est obligatoire. J ai peut etre trouvé "un hebergeur form" gratuit serieux avec ptite pub qui pourrait m arranger le temps que je prenne peut etre un cours de php pour etre au clair avec la securité. Il faut aussi dire que mon site utilise pas le css ( je sais que vous allez me dire c est pas du propre) ca fait des lignes de rallonges et du poid suplementaire au pages mais c est pas un gros probleme. Le php a une fonction include qui est interessant pour repeter les tableaux, donc quand on commence a creer un site web il faudrait je pense le faire direct en php et pas en html, si c etait a refaire je ferais comme ca.

Fred (Mercredi 11 Mars 2009 à 01:28):

@Grafikart : Hmmm ok je connais en javascript mais comme beaucoup de monde dit que le JvS est pas super top j'essaye de l'employé le moin possible, par contre si tu sais une fois en dire plus sur la fonction css là sa m'interesse car j'emplois le css sur mes sites depuis peux mais mtn je l'emplois depuis +/- 3 mois ...
Merci pour ton avis en tout les quà c'est cool, moi tes cours et conseils m'interesse
++ Fred

Fred (Mercredi 11 Mars 2009 à 02:26):

@Silo : Question hébergeur gratuit, va chez Free si tu est Français, là c'est 10 GO et aucune publicitée => http://www.free.fr/adsl/internet.html

Moi perso, je l'aurrais déjà fais depuis bien longtemps, mais pas de chance je suis Belge et l'inscription n'accepte que les Francais lol donc voilà (p'etre plus de chance)!

Hmmm 1 conseil, j'ai géré 1 site web pendant 7 ans et je gagnais ma vie avec (adsence), sérieusement prend déjà quelques heures pour bien comprendre le css avant de sauté sur le php car si tu saute sur le php et que tu zape le css c'est 1 peux bête car mtn que j'utilise le css c'est vrai que c'est une choutete façon de faire mais auquel je débute aussi (+/- 3 mois).

Sinon pour moi le php est basique aussi, car j'apprend aussi donc que dire appart bienvenu au club lol et bonne apprentissage , sur ce bonne soirée

@Grafikart : encore merci pour tout, tu cartonne ;-)
++
Fred

Silo (Mercredi 11 Mars 2009 à 11:09):

Fred, les hebergeurs gratuit je n y vais plus pour la simple est bonne raison que quand je les utilisais j ai changé 7 fois en 3 ans, car soit il etaient plus accessible soit il changaient la mise en page de leur pub et deformaient mes pages web, soit j avais depassé le cota de bande passante etc... mon probleme c est pas l hebergeur de pages, mon prob c est la securité.

Silo (Mercredi 11 Mars 2009 à 11:53):

Fred, par contre je vois bien l avenir des hebergements avec des minis ordinateur de la taille d un telephone portable assez puissant et silencieux, qu on pourrait faire tourner 24h sur 24 avec seulement mysql, comme ca les hebergeurs page web chip gratuit on en parle plus. :-)) il va falloir attendre 5-6 ans pour linker ca ?

kishi (Dimanche 05 Avril 2009 à 00:48):

c t un bon video merci et bravoooooooooooooooooooo

Thib-17 (Dimanche 05 Avril 2009 à 12:37):

je ne comprend pas, même en téléchargeant le script sa ne marche pas, j'ai essayer sur mon e-mail orange, gmail mais rien à faire

Grafikart (Dimanche 05 Avril 2009 à 13:19):

@Thib-17 : Tu es sur quel hébergeur ? Essaie de donner plus de détail en cas de problème.

Thib-17 (Dimanche 05 Avril 2009 à 17:07):

c'est bon sa marche enfaite c'est mon hébergeur, idoo.com, qui ne prend pas en compte mail().

AYMAN (Dimanche 12 Avril 2009 à 10:55):

Bonjour, un grand merci pour votre tuto je suis débutant en plus il tombe à pic car je suis en train de faire une site et j'ai besoin de faire un formulaire d'inscription.

floflodu59 (Dimanche 19 Avril 2009 à 13:19):

salut,
comment on fait pour pourvoir recevoir les information que qu'elle qu'un rentre dans mon formulaire sur mon adresse mail ?
merci d'avance

alamedagraphik (Mercredi 22 Avril 2009 à 17:24):

Bravo pour le tuto, c'est clair et bien expliqué.

fdadj (Dimanche 26 Avril 2009 à 20:40):

Bonsoir,

Je viens de finir l'exercice qui encore une fois est très bien expliqué, ce qui est très bien pour quelqu'un comme moi qui débute en PHP. Néanmoins j'ai un souci. Le formulaire, une fois validé, ne parvient pas à mon mail.

En effet, lorsque je valide mon formulaire, celui-ci me dit bien que mon mail est bien envoyé mais une fois que je consulte mon mail, il n'y a rien.

J'utilise un mac, encode avec Dreamweaver CS3. Quant au serveur, j'utilise MAMP, fraîchement téléchargé. Mon mail est sur wanadoo.

Comment puis-je faire pour faire fonctionner le fichier contact.html et contact.php correctement ?

Grafikart (Dimanche 26 Avril 2009 à 22:22):

@fdadj: Le problème es décrit dans la vidéo : en local et sur certain serveur tu ne dispose pas de serveur SMTP et du coup la fonction mail() ne peut pas fonctionner...

fdadj (Lundi 27 Avril 2009 à 00:09):

Merci beaucoup Grafikart,

1/ Je viens de vérifier dans les préférences de mon mail ( Version 3.3), utilisé dans une version mac OS 10.5.3. J'ai bien un serveur d'envoi SMTP activé. Celui-ci se nomme smtp.wanadoo.fr.

Quels sont, selon toi, les serveurs intéressants à utiliser autres que wanadoo, s'il t'est possible de répondre ?

2/ Etant grand débutant en PHP et donc peu de connaissances en la matière, il semblerait tout de même que le souci vienne bien du local. Sinon, existe t-il un tutorial , qui me faciliterait grandement la tâche, expliquant comment faire pour mettre en ligne quelque chose de local utilisant du PHP et le serveur MAMP ? Je vais faire des recherches, en parallèle, pour essayer de trouver une solution à mon problème.

Merci beaucoup

fdadj

Grafikart (Lundi 27 Avril 2009 à 08:36):

@fdadj: Regarde les tutoriels consacré à l'hébergement d'un site dans la section "hébergement"

fdadj (Mardi 28 Avril 2009 à 00:16):

Merci,
Je vais regarder le tutorial complémentaire et te tiens informé.
Bonne soirée

flocav (Vendredi 08 Mai 2009 à 18:33):

bonjour et merci pour cet excellent tuto ( un de plus!)
J'ai un souci dès le début de la création du contact.php
Quand on vérifie (avec echo $message) si le script fonctionne bien, le mien plante, ou plutôt, n'affiche rien! Pourtant j'ai bien re-re-revérifié mon code.
J'utilise XAMPPlite comme serveur local. Le problème peut-il venir de là?

juju (Jeudi 04 Juin 2009 à 17:39):

Bonjour à tous,

Ce tuto est super mais je voudrais savoir comment on peut faire la même chose sur Dreamweaver. J'ai créer mon formulaire je bute avec le php. Je voudrais créer ma page php directement sur dreamweaver. Si un tuto video est dispo merci de me faire passer le lien.

Juju

juju (Mardi 09 Juin 2009 à 22:59):

J'ai enlevé les accents mais je ne récupère toujours pas mes champs dans le mail, tu as une idée?

<?php

extract($_POST);
$to = "contact@monsite.com";
$subject = "Nouvelle demande";
$message = "Une nouvelle demande est arrivee \n
Societe: $societe \n
Email: $email \n
Nom: $nom \n
Prenom: $prenom \n
Service: $service \n
Budget: $Budget \n
Nombre de participants: $Participants \n
Arrivee: $Arrivee \n
Depart: $depart \n
Information: $Information \n";
$entete= "Form: $nom \n Reply-to: $email";
mail($to, $subject, $message, $headers);
echo "Votre demande a bien été envoyée."
?>

Merci

juju

Grafikart (Mardi 09 Juin 2009 à 23:39):

@Juju: Je crois que tu n'a pas du tout comment fonctionner le PHP et le formulaire de contact. Je suis désolé mais c'est un tutoriel, pas une ressource, donc je ne t'aiderais pas plus à adapter à ton formulaire. Normalement en comprenant le tutoriel tu devrait arriver à ce que tu veux.

juju (Mardi 09 Juin 2009 à 23:59):

@grafikart: OUI C'est vrai!! Je suis tout simplement completement novice et il est vrai que je dois passé pour un debile. J'ai regardé plusieurs fois le tuto et j'essaye de faire la même chose pour mon formulaire sur dreamweaver cs3, n'étant pas de la partie du tout je me debrouille comme je peux et j'avance doucement. Je ne demande pas que quelqu'un face les choses pour moi mais juste qu'on me montre mes erreures. Si tu peux m'aiguiller juste un peu... une fois encore je veux faire les choses par moi même mais sans les connaissances de bases c'est parfois dure de se corriger seule.

Merci quand meme pour tes réponses et ton aide.

JUJU

Grafikart (Mercredi 10 Juin 2009 à 01:03):

@juju: il faut que tu code directement en mode source sur dreamweaver, chaque input a un name qui est le nom de la variable en php
name="blabla" donnera une variable $blabla

juju (Mercredi 10 Juin 2009 à 14:05):

J'ai fais ça justement

<?php

extract($_POST);
$to = "contact@monsite.com";
$subject = "Nouvelle demande";
$message = "Une nouvelle demande est arrivee \n
Societe: $societe \n
Email: $email \n
Nom: $nom \n
Prenom: $prénom \n
Service: $service \n
Budget: $Budget \n
Nombre de participants: $Participants \n
Arrivee: $Arrivée \n
Depart: $départ \n
Information: $Information \n";
$entete= "Form: $nom \n Reply-to: $email";
mail($to, $subject, $message, $headers);
echo "Votre demande a bien été envoyée."
?>

Grafikart (Mercredi 10 Juin 2009 à 14:26):

@juju montre moi le formulaire aussi sinon je ne pourrais pas t'aider (le code source).

Grafikart (Mercredi 10 Juin 2009 à 17:35):

@Juju : Dernier aide-> pas d'accent ni de majuscule dans les name et les variable pour éviter les problèmes.

Ensuite dans ton code html tu ferme une bonne dizaine de fois </form> O_o
Faut le fermer qu'à la fin...

juju (Mercredi 10 Juin 2009 à 17:50):

Merci pour ton aide, j'ai suivi tes conseils mais rien n'y fait. Je vais bien finir par trouver.

Merci encore

JUJU

SniperZeElite (Jeudi 02 Juillet 2009 à 02:00):

Merci , ton tutoriel est vraiment super !
Merci beaucoup , moi qui débute dans le domaine du PHP maitrisant la base du HTML et du CSS , ton tutoriel est niquel !

Encore merci ! Bonne continuation !

pample (Mercredi 15 Juillet 2009 à 16:05):

Bonjour, j'ai essayé ça sur 3 serveurs différents, France et USA aucun ne fonctionne..

rq.html :


<form method="post" action="rq.php">
Nom :<input type="text" name="name" /><br>
Email :<input type="text" name="email" /><br>
Message :<textarea name="message" cols="30" rows="15"></textarea>
<input type="submit" value="send">
</form>

...........

rq.php :


<?php

if(isset($_POST && isset($_POST['name']) && isset($_POST['email']) && isset($_POST['message'])){
extract($_POST);
if(!empty($name) && !empty($email) && !empty($message)){
$destinataire="myemail@mydomain.com";
$sujet="Stipend Chart request";
$msg="I want your Stipend Chart \n
Name : $name \n
Email : $email \n
Message : $message" \n
$entete="From: $name \n Reply-To: $email";
mail($destinataire,$sujet,$msg,$entete);
}
else{
echo "Please fill all requested fields";
}
}
?>

pample (Mercredi 15 Juillet 2009 à 16:34):

ok, ai trouvé l'erreur.

comment on fait pour rediriger vers une page spécifique après le "submit", et comment faire apparaitre le message "vous n'avez pas rempli tous les champs" dans un popup plutôt qu'il ne remplace le formulaire..

merci bien.

Neiluj (Jeudi 16 Juillet 2009 à 00:20):

Note pour ce qui ont des pages perso orange ça ne marche pas !!!

miklfe (Vendredi 24 Juillet 2009 à 13:14):

houaa! SUPER pédagogue: t'es prof au moin.
Ca c'est un vrai tuto! Pourtant d'habitude, je suis pas fan des tuto vidéo (souvent trop rapide et peu précis), mais quand c'est fait comme ça c'est un régal.
Bravo.

Basketteur-33 (Dimanche 26 Juillet 2009 à 03:52):

Très bon tuto, mais j'ai un erreur unefoit en ligne sûr free quand j'envoie le mail j'ai une erreur ligne 8(c celle ou ta $msg=un message a était ...

suml (Dimanche 02 Août 2009 à 16:50):

Hello,

@grafikart: très bon tuto. Je suis débutant en php. J'ai suivi à la lettre ce tuto mais soucis, c'est que lorsque je rempli les champs et que je teste sur mon serveur local, rien ne s'affiche !

J'ai installé MAMP pour lire php.

J'ai vérifié minutieusement les ponctuations, guillemets etc...je ne sais pas où se situe le problème... help...

Fugazy (Dimanche 02 Août 2009 à 17:16):

Bonjour et merci infiniment pour ce tuto on ne peut plus explicite. Je peux enfin envoyer un formulaire de contact sant passer par la messagerie. Ouf...
Cependant, existe-t-il une solution, un bout de code, à intégrer à celui-ci pour pour faire un retour automatique à la page de contact, ou autre, après l'envoi et le message de confirmation ?
Merci encore et bravo pour le site
+1

ALEKS (Mardi 04 Août 2009 à 02:04):

Un grand merci ! Votre travail est superbe, vos tutos aussi ! Mon top five en site web et blog ! Bonne continuation et encore merci !

Baptiste (Lundi 17 Août 2009 à 17:36):

salut!
j'ai mit en ligne les deux fichiers, mais au moment d'envoyer, le fichier php me dit: éParse error: syntax error, unexpected T_VARIABLE in /homepages/19/d242516353/htdocs/contact.php on line 6"
ma ligne 6 c'est:
$destinataire="bapt-39@hotmail.fr";

qu'est ce qui va pas??!

merci!
@+

modifoto (Jeudi 20 Août 2009 à 11:02):

bonjour super tuto !!
Mais peut on aussi envoyer des pieces jointes par ce proceder?? Si oui Comment?? Merci beaucoup encore pour ton tuto

vince (Mardi 01 Septembre 2009 à 21:32):

salut quand je vais sur la page .html et que je remplie les champ et que j'envoie sa
m'envoie vers la page .php mais sa ne m'affiche rien ( que les champ soit afficher ou pas ) help me
merci d'avance =)

lilou (Mercredi 02 Septembre 2009 à 02:07):

Bonjour,

J'ai un soucis dans mon formulaire de contact je n'arrive pas a récupérer tous mes chanps quelqun pourrait il m'aider svp?
?>
<?php
$destinataire = "????@hotmail.com"; //Placez ici votre adresse où envoyer le message
//La fonction mail :adresse, objet, message
//si on remplace mail par @mail on désactive les messages en cas d'erreur
if (isset($_POST['Mail']) && $_POST['Mail'] != "")
{
if (@mail($destinataire, "Vous avez du courrier!",$_POST['Mail'],$_POST['message'],$_POST['tel'])) {
echo "<p>Merci pour votre message !</p>";
} else {
echo "<p>Désolé une erreur est arrivé !</p>";
}
}
?>


Le champ "tel " et d' autres champs ne me revienne pas...:(
Si quelqun pourrait m"aider je galère trop.

Merci
Lilou

Rwann (Mardi 22 Septembre 2009 à 13:19):

Bonjour,
j'ai repris le code de HotSkill (puisque je ne trouve pas comment récupérer le code du tuto) en changeant uniquement le mail de destination mais ça ne marche qu'à moitié! la validation du formulaire se fait avec succès mais je ne reçois pas le mail

Loulou (Mercredi 07 Octobre 2009 à 16:38):

<?php
if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['URL']) && isset($_POST['fonction'])&& isset($_POST['sexe']) && isset($_POST['fonction2']) && isset($_POST['IP']) && isset($_POST['message'])){
extract($_POST);
if(!empty($nom) && !empty($email) && !empty($email) && !empty($URL) && !empty($fonction) && !empty($sexe) && !empty($fonction2) && !empty($IP) && !empty($message)){
$message=str_replace("\'","'",$message);
$destinataire="louis2sm@hotmail.fr";
$subjet="Un nouveau message de contacts est arrivé";
$mag="Un nouveau message de contacts est arrivé \n
Nom : $nom \n
Email : $email \n
Url : $URL \n
Fonction : $fonction \n
Son sexe : $sexe \n
Sa note : $fonction2 \n
Son adresse IP : $IP \n
Son messages : $message";
$entete="From: $nom \n Reply-To:: $eamil";
mail($destinataire, $subject, $msg, $entete);
echo "Le messages a bien été envoyé cliquez-ici pour revenir sur la page d'accueil"
}
else(
echo "Vous n'avez pas rempli tous les champs";
}
}
?>

Parse error: syntax error, unexpected '}', expecting ',' or ';' in /homez.170/specialp/www/contact-script.php on line 20

Voila mon erreur

Harry (Mercredi 07 Octobre 2009 à 18:59):

Cherche un peu tout seul, l'erreur dit tout d'elle même ! Tu as oublié un } ...

caillou444 (Mardi 13 Octobre 2009 à 21:52):

Bonjour, et encore brovo pour tout vos tuto.

J'ai un petit souci sur ce tuto au niveau de la ligne 15.
Il me met ça quand je clique sur envoyé : Parse error: syntax error, unexpected '}' in /homepages/39/d299674154/htdocs/contact.php on line 48.

Voilà j'espère que vous aller pouvoir touver mon petit problème, c'est au niveau de la"}" qu'il a un problème.
Merci d'avance.

Karita (Vendredi 23 Octobre 2009 à 15:55):

Bonjour,

Merci pour ce tutoriel très explicatif, ça m'a beaucoup aidé ! Je vais jeter un coup d'œil aux autres tutoriels, votre blog est vraiment utile !
Merci !

Nouipoz (Vendredi 23 Octobre 2009 à 21:58):

Salut, le zip marche plus pour les premieum regarde http://grafikart.fr/downloads/tutoriel/source/21

merci

ZiOu (Mardi 27 Octobre 2009 à 18:26):

Bonjour, quelqu'un pour m'aider S.V.P !
Je suis sous serveur FREE et j'ai tourné mille et une fois mais j'ai pas trouvé d'erreur dans mon script. Voilà quand je reçois le message dans ma boite mail, je n'arrive pas à faire afficher le nom et l'adresse E-mail de l'expéditaire dans le contenu de mon message. De plus quand je reçois l'e-mail dans la colonne "De:" j'ai l'adresse de mon compte FREE plus celle de l'expéditaire...

KaKuZa` (Dimanche 01 Novembre 2009 à 17:45):

Pour enleve les anti-slash y'a pas besoin de str_replace(); mais tu peux simplement te servir de stripslashes(); comme ce ceci $message = stripslashes($message);

Enfin sinon bravo pour ton site ^^

Tolrac (Vendredi 20 Novembre 2009 à 16:43):

Salut,

Merci pour ce super tuto...
Ma question est la suivante : comment récupérer le saut à la ligne du textarea dans la partie AJAX afin que le commentaire s'affiche tel qu'onj l'a tapé dans le textarea ?

Merci d'avance.

Grafikart (Samedi 21 Novembre 2009 à 21:27):

au niveau php il y a une fonction qui remplace les sauts de ligne par un <br/>, utilise la fonction nl2br(LE_CONTENU_DU_TEXTAREA)

JiiB (Mercredi 16 Décembre 2009 à 18:07):

Bonjour,

tout d'abord merci pour ce tuto, vraiment très pratique et très bien expliqué, mais j'ai un petit souci car il me dit que j'ai une erreur!! mais je n'arrive pas a la trouver!!!
voila ce qu'il me met quand je publie ma page:


Parse error: syntax error, unexpected $end in /home/darmandesign/www/pages/PageContact.php on line 105

cacou (Lundi 21 Décembre 2009 à 16:13):

Bonjour,

J'ai essayé de faire la meme chose, malgré le tuto, rien ne fonctionne, et j'ai téléchargé Wamp. Je n'ai pas les memes résultats, impossible d'envoyer mon formulaire ?

Merci de vos réponses.

pobourger (Lundi 21 Décembre 2009 à 16:29):

Bonjour Cacou,
Je pense que tu ne peut pas envoyé ton formulaire car wamp ne possède pas une base SMTP donc il est dans impossibilité d'envoyer ton formulaire..
Donc je te conseil de uploader ton formulaire sur un hébergeur comme free ou autre...
Bon courage.

terminator34 (Mercredi 23 Décembre 2009 à 18:35):

salut et merci pour ton tuto
j'ai un soucis, j'ai créé le formulaire de contact sur le site http://emf34.free.fr/ , je rempli les champs, et quand je valide, sa me met la page php blanche, idem quand je ne rempli pas un champ...
pouvez vous m'aider^^
merciiii

PokeR (Dimanche 03 Janvier 2010 à 16:05):

Salut Grafikart. Déjà merci pour ce super tutorial ! Mais j'aurai voulu savoir comment séparer la news en 2 partie. Une partie pour une intro avec un bouton read more et une autre partie qui quand on appuie sur le bouton read more affiche l'intro et la 2eme partie soit le contenu.

PokeR (Dimanche 03 Janvier 2010 à 16:06):

Je me suis trompé de tuto ^^

cameroondream (Dimanche 10 Janvier 2010 à 18:24):

bonjour à tous !!
tout abord merci Grafikart pour ce tuto

j'ai lu un peu les messages d'erreurs de chacun; mais je constate que mon problème est unique !!
En effet, j'ai réalise le formulaire, sur deux pages comme sur la vidéo;
lorsque j'envoie le formulaire, aucun message ne s'affiche .
voici mon code --> contact.html

<form action="controle.php"> <!-- ici mettre le script pour recuperer les données -->
<p>
<label for="f-nom">Nom</label>
<span>
<input type="text" class="text" name="nom" id="f-nom" />
</span>
</p>
<p>
<label for="f-email">E-mail</label>
<span>
<input type="text" class="text" name ="email" id="f-email" />
</span>
</p>
<p>
<label for="f-sujet">Sujet</label>
<span>
<select name="sujet" id="f-sujet">
<option value="projet" selected="selected">Projet</option>
<option>Proposition</option>
<option>Autre</option>
</select>
</span>
</p>
<p>
<label for="f-message">Message</label>
<span>
<textarea name="message" id="f-message" rows="8"> vos messages ICI !!! </textarea>
</span>
</p>
<p>

<span>
<input type="submit" value="Envoyer le message" />
</span>
</p>

</form>

et le code de controle

<?php
if(isset($_post) && isset($_post['nom']) && isset($_post['email']) && isset($_post['sujet']) && isset($_post['message']))
{
extract($_POST);
if(!empty($nom) && !empty($mail) && !empty($sujet) && !empty($message))
{
$message=str_replace("\'"," ' ",$message);
$sujet=" formulaire de contact";
$message="une propostion est arrivée\n
nom:$nom \n
Email:$email \n
message: $mesage";
$entete="From $nom \n Reply-To: $email";

echo $nom;

mail("simni@gmail.com",$sujet,$message,$entete);

echo" le mail a bien été envoyer";

}
else {

echo" merci de remplir tous les champs; afin que votre demande soit traité";



}

}

?>


je ne vois pas vraiment d'ou est le problème, j'ai essayé de mettre des echo un peu partout , pour vois si je renvoi le post mais rien ,

jai envoyé les deux fichiers sur mon site web avec un serveur apache quand je clique sur envoyé une passage blanche !!

Merci d'avance !!

cameroondream (Dimanche 10 Janvier 2010 à 18:58):

oupssss j'ai oublié la methode ="post";

cameroondream (Dimanche 10 Janvier 2010 à 22:00):

oupssss j'ai oublié la methode ="post";

guitarwebo (Vendredi 15 Janvier 2010 à 22:52):

Salut, voilà je suis en train de suivre le tuto (avec quelques petites base en php (j'ai bien dis petites ;-))) et j'ai un problème pratiquement au début. J'ai créer ma page html (là pas de problème) mais quand je code mon php avec ce code :
<?php
$_POST ['nom']
if(isset($_post)&&isset($_post['nom'])&&isset($_post['email'])&&isset($_post['message']))
{
extract ($_POST);
if(!empty($_nom) && !empty($_email) && !empty($_message)){
echo $message;
}
}
?>

il me dit : "Parse error: parse error in C:\wamp\www\tests\contact.php on line 3"
j'ai donc bien regarder le code (plusieurs fois) mais pas moyen de voir ce qui cloche ...

Merci d'avance pour votre réponse @+
Robin

Vypuc (Mardi 26 Janvier 2010 à 17:10):

Que veux tu faire avec ta 2e ligne ? $_POST ['nom']
Ta ligne ne semble servir à rien.
Mais surtout, il manque un point virgule en fin de ligne !

Vincent27 (Mercredi 27 Janvier 2010 à 17:02):

Bonjour,

petit problème :

Mon code d'erreur : Parse error: syntax error, unexpected T_IF in /home/data/users/j/japoncity/cible.php on line 3

mon code html : <html>
<head></head>
<body>
<form method="post" action="cible.php">
Nom :<input type="text" name="nom" /><br />
Email :<input type="texte name="email" /><br />
Message :<textarea name="message" cols="30" rowa="15"></textarea>
<input type="submit" value="Envoyer" />
</form>
</body>
</html>

Mon code php (cible.php) :

<?php>

if(isset(§_POST && isset(§_POST['nom]) && isset (§_POST['email']) && isset(§_POST['message'])){
extract(§_POST);
if(§empty(§_nom) && !empty(§email) && !empty(§message)){
§destinataire="contactsite@redby.fr";
§sujet="Formulaire de contact";
§msg="un nouveau formulaire de recrutement est arrivé \n
Nom : §nom \n
Email : §email \
Message : §message";
§entete="From: §nom \n Reply-To: §email";
mail(§destinataire,§sujet,§msg,§entete);
echo"Le mail à été envoyé, reste plus qu'à patienter !";
}
else(
echo "vous n'avez pas rempli tous les champs";
}
}
?>


C'est les même code employer dans le tuto ...
mais comme ont voit mal les () et {} sa pourrais peut être venir de sa ...

pouvez-vous m'aidez svp ?

Baptiste (Mercredi 27 Janvier 2010 à 17:49):

salut
déjà je sais pas mais ta première balise php a un > en trop! <?php>
Sinon ligne 3: tu mets des § et pas des dollars $
De plus tu met §empty au lieu de !empty (le ! dit "différent" )
Et encore un truc ligne 3: tu appelle ta variable _nom alors que je pense que c'est simplement nom ($nom)

regarde déjà ça!!
@+

Vincent27 (Mercredi 27 Janvier 2010 à 19:22):

Parse error: syntax error, unexpected T_BOOLEAN_AND, expecting ',' or ')' in /home/data/users/j/japoncity/cible.php on line 3

merci quand même :o)

Badbart (Mercredi 27 Janvier 2010 à 19:57):

Franchement il y a tout a refaire. Tu zap des ' , tu mets des § à la place des $, un ( à la place d'un { .
A ta place je retaperai tout.
Je met ton code corrigé, mais ça ce trouve je suis passer a coté d'erreurs.
Au lieu de le copier coller, retape tout(je me répète) ça te fera du bien.

<?
if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])){
extract($_POST);
if(!empty($nom) && !empty($email) && !empty($message)){
$destinataire="contactsite@redby.fr";
$sujet="Formulaire de contact";
$msg="un nouveau formulaire de recrutement est arrivé \n
Nom : $nom \n
Email : $email \
Message : $message";
$entete="From: $nom \n Reply-To: $email";
mail($destinataire,$sujet,$msg,$entete);
echo"Le mail à été envoyé, reste plus qu'à patienter !";
}
else{
echo "vous n'avez pas rempli tous les champs";
}
}
?>

Vincent27 (Jeudi 28 Janvier 2010 à 17:26):

Merci beaucoup

 

Ajouter un commentaire

Vous devez activer javascript.
 

 

Suivre les commentaires de ce tutoriel