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 3 ✓ - Forum Word
- Petit 2 ✓ - Forum Windows
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>