Tres petit soucis avec la fonction envois de php
Résolu
flexi2202
-
flexi2202 -
flexi2202 -
bonsoir a tous
j ai trouve un code en php qui permet de faire remplir un formulaire et que ce dernier sois envoye a mon adresse amil
tout fonctionne a merveille
mais je souhaiterais qu une fois le formulaire envoyé , le personne qui a envoyé le formulaire voit apparaitre une nouvelle page avec un message comme quoi son message a bien ete envoye
voici le code php
merci de l aide
j ai trouve un code en php qui permet de faire remplir un formulaire et que ce dernier sois envoye a mon adresse amil
tout fonctionne a merveille
mais je souhaiterais qu une fois le formulaire envoyé , le personne qui a envoyé le formulaire voit apparaitre une nouvelle page avec un message comme quoi son message a bien ete envoye
voici le code php
merci de l aide
<?php
define('MAIL_DESTINATAIRE','talonil.com'); // remplacer par votre email
define('MAIL_SUJET','Demande de renseignement(s)');
if(!empty($_POST)){
extract($_POST);
$valid = true;
if (empty($_POST['nom'])){
$valid=false;
$erreurnom="Vous n'avez pas rempli votre Nom";
}
if (empty($_POST['prenom'])){
$valid=false;
$erreurprenom="Vous n'avez pas rempli votre Prénom";
}
if (empty($_POST['email'])){
$valid=false;
$erreuremail="Vous n'avez pas rempli votre Email";
}
if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){
$valid=false;
$erreuremail="Votre Email n'est pas valide";
}
if(empty($email)){
$valid=false;
$erreuremail="Vous n'avez pas renseigné votre Email";
}
if (empty($_POST['objet'])){
$valid=false;
$erreurobjet="Vous n'avez pas rempli l'objet de votre message";
}
if (empty($_POST['message'])){
$valid=false;
$erreurmessage="Vous n'avez renseigné votre Message";
}
if($valid){
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="utf-8"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer Smiley langue HP/' . phpversion()."\r\n";
// préparation du corps du mail
$mail_corps = "Nom : $nom\n";
$mail_corps .= "Prénom : $prenom\n";
$mail_corps .= "Téléphone : $telephone\n";
$mail_corps .= "Email : $email\n";
$mail_corps .= "Objet de votre message : $objet\n";
$mail_corps .= "Message : $message\n";
// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
//Le mail est bien expédié
$erreur = "Votre message nous a bien été transmis";
unset($nom);
unset($prenom);
unset($objet);
unset($telephone);
unset($email);
unset($message);
}
else{
$erreur = "Une erreur est survenue, votre message n'est pas parti";
}
}
}
?>
A voir également:
- Tres petit soucis avec la fonction envois de php
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Trier du plus petit au plus grand excel - Guide
- Petit 2 ✓ - Forum Windows
- Petit point vert snap ✓ - Forum Snapchat
2 réponses
Bonsoir,
// je n'ai pas reprit le reste du code par soucis de clarté, il doit bien sur être présent
// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
//Le mail est bien expédié
$erreur = "Votre message nous a bien été transmis";
unset($nom);
unset($prenom);
unset($objet);
unset($telephone);
unset($email);
unset($message);
}
else{
$erreur = "Une erreur est survenue, votre message n'est pas parti";
}
// affiche le contenu de la variable $erreur avec la fonction echo
echo $erreur;
}
}
Néanmoins si vous sépare le traitement de la forme(HTML) ce qui est correct vous pouvez rediriger vers une page prévue pour ça en utilisant la fontion php header()
http://php.net/manual/fr/function.header.php
Et en transférant en GET la variable en question
http://php.net/manual/fr/reserved.variables.get.php
Comme ceci:
// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
//Le mail est bien expédié
$erreur = "Votre message nous a bien été transmis";
unset($nom);
unset($prenom);
unset($objet);
unset($telephone);
unset($email);
unset($message);
}
else{
$erreur = "Une erreur est survenue, votre message n'est pas parti";
}
// envoit vers une page qui indique le résultat de l'envoi du formulaire
header('Location: resultatenvoi.php?message='.$erreur);
exit();// facultatif mais ça coûte rien d'arrêter le programme/la page
}
}
Et bien sûr de créer cette page resultatenvoi.php
<html>
<head><title>CONFIRMATION DE L'ENVOI DU FORMULAIRE</title></head>
<body>
<!-- un peu de css pour la forme -->
<p style='color:red;font-size:2.2em;font-weight:bold;'>
<!-- début du php -->
<?php
/* controle si la valeur de la variable $erreur est bien envoyé(otenu dans une variable nommée $_GET['message'] comme indiqué dans la redirection par la fonction header()
*/
if(isset($_GET['message'])){
echo $_GET['message'];
}
exit();
?>
</p>
</body>
</html>
// je n'ai pas reprit le reste du code par soucis de clarté, il doit bien sur être présent
// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
//Le mail est bien expédié
$erreur = "Votre message nous a bien été transmis";
unset($nom);
unset($prenom);
unset($objet);
unset($telephone);
unset($email);
unset($message);
}
else{
$erreur = "Une erreur est survenue, votre message n'est pas parti";
}
// affiche le contenu de la variable $erreur avec la fonction echo
echo $erreur;
}
}
Néanmoins si vous sépare le traitement de la forme(HTML) ce qui est correct vous pouvez rediriger vers une page prévue pour ça en utilisant la fontion php header()
http://php.net/manual/fr/function.header.php
Et en transférant en GET la variable en question
http://php.net/manual/fr/reserved.variables.get.php
Comme ceci:
// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
//Le mail est bien expédié
$erreur = "Votre message nous a bien été transmis";
unset($nom);
unset($prenom);
unset($objet);
unset($telephone);
unset($email);
unset($message);
}
else{
$erreur = "Une erreur est survenue, votre message n'est pas parti";
}
// envoit vers une page qui indique le résultat de l'envoi du formulaire
header('Location: resultatenvoi.php?message='.$erreur);
exit();// facultatif mais ça coûte rien d'arrêter le programme/la page
}
}
Et bien sûr de créer cette page resultatenvoi.php
<html>
<head><title>CONFIRMATION DE L'ENVOI DU FORMULAIRE</title></head>
<body>
<!-- un peu de css pour la forme -->
<p style='color:red;font-size:2.2em;font-weight:bold;'>
<!-- début du php -->
<?php
/* controle si la valeur de la variable $erreur est bien envoyé(otenu dans une variable nommée $_GET['message'] comme indiqué dans la redirection par la fonction header()
*/
if(isset($_GET['message'])){
echo $_GET['message'];
}
exit();
?>
</p>
</body>
</html>