Bonjour a tous je viens de m'inscrire,
j'aurais besoin d'aide par rapport a la programmation de mon site.
j'ai déjà rédiger le corps de mes formulaire avec a la fin le bouton envoyer.
j'aimerais maintenant faire en sorte que lorsque le formulaire est validez par l'utilisateur, je reçois le formulaire par mail.
Merci de bien vouloir m'aider.
<?php
//---------------------------------------------------------
// On "importe" la class PHPMailer.
//---------------------------------------------------------
require_once("./PHPMailer/class.phpmailer.php");
require_once("./PHPMailer/class.smtp.php");
//---------------------------------------------------------
// Definition des constantes :
//---------------------------------------------------------
define('GUSER', 'tonadresseEmail@gmail.com'); // GMail username
define('GPWD', 'sonMotdePass'); // GMail password
//---------------------------------------------------------
//fonction d'envoie de mail
//---------------------------------------------------------
function sendMail($to, $from, $from_name, $subject, $body) {
global $error;
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 0; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->Username = GUSER;
$mail->Password = GPWD;
$mail->SetFrom($from, $from_name);
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAddress($to);
if(!$mail->Send()) {
$error = 'Mail error: '.$mail->ErrorInfo;
return false;
} else {
$error = 'Message sent!';
return true;
}
}
//---------------------------------------------------------
// ON REGARDE SI LE FORMULAIRE A ETE VALIDE
//---------------------------------------------------------
if(isset($_POST['valider'])){
// on récupère le contenu des variables
$nom = isset($_POST['nom'])?$_POST['nom']:'';
$prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
$age = isset($_POST['age'])?$_POST['age']:'';
$email = isset($_POST['email'])?$_POST['email']:'';
$subject = "Test d'envoie de mail";
$textMsg = "";
$textMsg .= "Bonjour M./Mme ".$nom." ".$prenom;
$textMsg .= "<br>Vous avez indiqué avoir : ".$age." ans.";
$textMsg .= "<br>Merci.";
$to = $email;
$from = "moi@mondomaine.fr";
$from_name = "moi moi moi";
if(!sendMail($to, $from, $from_name, $subject, $textMsg)){
echo "<pre>err: ".$error."</pre>";
}else{
echo " <pre> MESSAGE ENVOYE ... </pre>";
}
}
?>
<html>
<head><title>TEST FORMULAIRE</title>
</head>
<body>
<!-- FORMULAIRE HTML -->
<form name="monForm" method="post" action="">
<label for="inp_nom"> NOM </label>
<input type="text" name="nom" id="inp_nom" value="">
<br>
<label for="inp_prenom"> PRENOM </label>
<input type="text" name="prenom" id="inp_prenom" value="">
<br>
<label for="inp_age"> AGE </label>
<input type="text" name="age" id="inp_age" size="3" value="">
<br>
<label for="inp_mail"> Email </label>
<input type="text" name="email" id="inp_mail" value="">
<br>
<input type="submit" name="valider" value="Go">
</form>
</body>
</html>
1 - "installation" de phpmailer
Pour que ça fonctionne.. tu télécharge phpmailer..
et tu le dézipe dans le même répertoire que ta page...
..ou tu peux le mettre ailleurs.. mais dans ce cas il faut modifier le chemin dans les lignes :
4 - Tu récupères les variables de ton formulaire en PHP
par exemple :
$nom = isset($_POST['nom'])?$_POST['nom']:'';
comme tu peux le voir.. j'ai utilisé deux choses importantes
A - ISSET ... permet de s'assurer que la variable existe
B - L'écriture "ternaire" ( condition ? valeur si vrai : valeur si faux) ... c'est une autre façon de faire des IF/ELSE..
Bonjour,
Sur quoi bloques tu exactement ?
Qu'as tu essayé ?
A partir de quoi souhaites tu envoyer ton mail ? ( tu as un compte email que tu peux utiliser via SMTP ? )
Merci jordane45 pour ta consideration.
je n'ai encore rien essayer a ce propos je sais uniquement qu'il faut utiliser du php .
j'ai une adresse gmail normal.
et j'ai trouver ce fichier
<?php
// check if fields passed are empty
if(empty($_POST['name']) ||
empty($_POST['phone']) ||
empty($_POST['email']) ||
empty($_POST['message']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "No arguments Provided!";
return false;
}
$name = $_POST['name'];
$phone = $_POST['phone'];
$email_address = $_POST['email'];
$message = $_POST['message'];
// create email body and send it
$to = 'your-email@your-domain.com'; // PUT YOUR EMAIL ADDRESS HERE
$email_subject = "Modern Business Contact Form: $name"; // EDIT THE EMAIL SUBJECT LINE HERE
$email_body = "You have received a new message from your website's contact form.\n\n"."Here are the details:\n\nName: $name\n\nPhone: $phone\n\nEmail: $email_address\n\nMessage:\n$message";
$headers = "From: noreply@your-domain.com\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
return true;
?>
est ce que tu pourais m'aider a le configurer stp ?
est-il possible d'utiliser une adresse gmail classique pour cette fonction ?
Peut-on faire des test sur le bon fonctionnement de cette fonction sans avoir mon site en ligne (j'utilise notepad++ et je launch in chrome pour les test)?
Merci encore
Ce bout de code ne fonctionnera pas en local sur ton poste ( hormis en faisant plein de paramétrages divers et variés sur ton wampserver (ou easyPhp.. ou tout autre moteur PHP/mysql que tu y aurais installé...)
C'est pour ça que je t'ai proposé d'utiliser la class PHPMAILER.
Pour l'utilisation avec GMAIL . tout y est indiqué...(dans le tuto que je t'ai indiqué dans ma réponse précédente).
rebonjour jordane45 j'espère que je te dérange pas mais j'ai regarder les liens que tu m'as joint dans ta première réponse:
https://github.com/PHPMailer/PHPMailer pour la classe PHPMAILER
et http://phpmailer.worxware.com/?pg=examplebgmail mais je ne comprend pas le fonctionnement de la classe (je ne comprend pas comment l'appliquer) je sais que c'est pas du tout la politique des blogueurs de procédé de cette façon, mais moi j'apprend en voyant l'application des exercice, j'ai besoin d'exemple que je comprend pour pouvoir les appliquer par la suite .
J'ai en effet a configurer 3 formulaires a envoyer automatiquement par mail.
puis-je te demander de me le faire pour mon formulaire de contact que je te joindrais si tu me l'accorde (je pourrais te joindre les autre formulaire a configurer comme preuve que je dois les faire).
Merci d'avance.
Excuse moi j'ai validez la fonction html dans la zone de texte mais je sais pas si sa à marché
dautre part merci pour tes explications je continue de regardé mais je pense qu'un exemple adapté sur le formulaire que je t'ai donné me serait beaucoup plus comprehemsible
je te remercie pour tout
tu peut pas savoir comment tu me sauve (je suis en contrat de professionnalisation et mon tuteur ne m'aide pas du tout)