Problème d'envoi avec double formulaire... HELP !!
Posté : 02 avr. 2013, 19:16
Bonjour à tous,
Voila deux jours que je bloque sur un formulaire qui ne fonctionne qu'en apparence... Je m'explique :
il s'agit d'un formulaire partagé en 2 onglets : "proposition de projet" et "dire bonjour" (je le précise car c'est peut-être le script qui fait des siennes...). Le formulaire et le php se trouvent sur une seule et même page.
Comme je le disais, en apparence tout fonctionne bien (validation, confirmation d'envoi,...) mais le hic (et sans doute le plus important) c'est qu'au final, je ne reçois rien sur la boîte email qui est liée.
Pourtant, tout semble clair (j'essaie de commenter au maximum) mais je ne vois vraiment pas ce qui coince...
Quelqu'un pourrait-il m'aider ?
D'avance merci !!
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script>
$(document).ready(function() {
$("#content div").hide();
$("#tabs li:first").attr("id","current");
$("#content div:first").fadeIn();
$('#tabs a').click(function(e) {
e.preventDefault();
$("#content div").hide();
$("#tabs li").attr("id","");
$(this).parent().attr("id","current");
$('#' + $(this).attr('title')).fadeIn();
});
})();
</script>
</head>
<body>
<div class="container">
<section id="contact">
<h2>- CONTACT -</h2>
<div id="forms">
<ul id="tabs">
<li><a href="#" title="project">Proposition de projet</a></li>
<li><a href="#" title="hello">Dire bonjour...</a></li>
</ul>
<div id="content">
<div id="project">
<?php
if (isset($_POST["envoi"])){
$etat = "erreur";
// On arrange la mise en forme
if (isset($_POST["name"])) $_POST["name"]=trim(stripslashes($_POST["name"]));
if (isset($_POST["email"])) $_POST["email"]=trim(stripslashes($_POST["email"]));
if (isset($_POST["details"])) $_POST["details"]=trim(stripslashes($_POST["details"]));
// validité des champs
if (empty($_POST["name"])) { // L'utilisateur n'a pas rempli le champ nom
$erreur=''; // l'erreur sera affichée
}
elseif (empty($_POST["email"])) { // L'utilisateur n'a pas rempli le champ email
$erreur='';
}
// vérification du type [email protected]
elseif (!preg_match("$[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email"])){
$erreur='';
}
elseif (empty($_POST["location"])) {
$erreur='';
}
elseif (empty($_POST["details"])) {
$erreur='';
}
else { // Si tous les champs sont valides, l'état est ok
$etat="ok";
}
}
else { // Sinon le formulaire n'a pas été soumis
$etat="attente"; // On passe en attente
}
if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
if ($etat=="erreur"){ // le formulaire a été soumis mais il y a des erreurs --> on affiche l'erreur
echo "<span style=\"color:red \">".$erreur."</span><br /><br />\n";
} ?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" name="form_project" id="form_project">
<fieldset>
<ul>
<li>Name :<br />
<input type="text" name="name" value="<?php if (!empty($_POST["name"])) {
echo htmlspecialchars($_POST["name"],ENT_QUOTES);}?>" required >
</li>
<li>Email :<br />
<input type="email" name="email" value="<?php if (!empty($_POST["email"])) {
echo htmlspecialchars($_POST["email"],ENT_QUOTES);}?>" required >
</li>
<li>Company (if applicable) :<br />
<input type="text" name="company" value="<?php if (!empty($_POST["company"])) {
echo htmlspecialchars($_POST["company"],ENT_QUOTES);}?>">
</li>
<li>Location :<br />
<input type="text" name="location" value="<?php if (!empty($_POST["location"])) {
echo htmlspecialchars($_POST["location"],ENT_QUOTES);}?>" required >
</li>
<li>Current website (if applicable) :<br />
<input type="text" name="website" value="<?php if (!empty($_POST["website"])) {
echo htmlspecialchars($_POST["website"],ENT_QUOTES);}?>">
</li>
<li>Details :<br />
<textarea name="details" ></textarea>
</li>
<li>
<input id="send_form_project" name="envoi" type="submit" value="submit">
</li>
</ul>
</fieldset>
</form>
<?php }
else { // état est ok --> on envoie le mail
$his_name = $_POST["name"];
$his_email = $_POST["email"];
$his_message = $_POST["details"];
$my_email = "[email protected]"; // Mise en forme du message que vous recevrez
$my_name = "mon nom";
$my_url = "contact.php";
$message_for_me =" Voici le message :\n\n Project proposal : \n\n Name : ".$_POST["name"]."\n\n Email: ".$_POST["email"]."\n\n Company: ".$_POST["company"]."\n\n Location: ".$_POST["location"]."\n\n Website: ".$_POST["website"]."\n\n Details: ".$_POST["details"]."\n";
// Mise en forme de l'accusé réception qu'il recevra
$accuse_pour_lui ="Message";
$subject_for_me = 'sujet pour moi';
$subject_for_him = 'sujet pour lui';
// Envoie du mail pour moi
$entete1 = "From: " . $his_name . " <" . $his_email . ">\n";
$entete1 .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$entete1 .='Content-Transfer-Encoding: 8bit';
// Envoie du mail pour lui
$entete2 = "From: " . $my_name . " <" . $my_email . ">\n";
$entete2 .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$entete2 .='Content-Transfer-Encoding: 8bit';
}
// Confirmation du mail envoyé
if (@mail($my_email,$subject_for_me,$message_for_me,$entete1)){
echo "<p style=\" position: absolute; top: 50%; left: 50%; width: 140px; height: 65px;
background-color: #000; margin: 50px auto 0 auto;
padding: 15px 25px 25px 15px; text-align:center; color: white;\">Votre message est envoyé.<br/><br />
<a href=\"contact.php\" style=\"text-decoration: none; text-decoration: underline; color: #3744c1; \">OK</a>
</p>\n";
} ?>
</div>
<div id="hello">
<?php
if (isset($_POST["envoi2"])){
$etat = "erreur";
if (isset($_POST["name2"])) $_POST["name2"]=trim(stripslashes($_POST["name2"]));
if (isset($_POST["email2"])) $_POST["email2"]=trim(stripslashes($_POST["email2"]));
if (isset($_POST["details2"])) $_POST["details2"]=trim(stripslashes($_POST["details2"]));
if (empty($_POST["name2"])) {
$erreur='';
}
elseif (empty($_POST["email2"])) {
$erreur='';
}
elseif (!preg_match("$[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email2"])){
$erreur='';
}
elseif (empty($_POST["details2"])) {
$erreur='';
}
else {
$etat="ok";
}
}
else {
$etat="attente";
}
if ($etat!="ok"){
if ($etat=="erreur"){
echo "<span style=\"color:red \">".$erreur."</span><br /><br />\n";
}
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" name="form_hello" id="form_hello">
<fieldset>
<ul>
<li>Name :<br />
<input type="text" name="name2" value="<?php if (!empty($_POST["name2"])) {
echo htmlspecialchars($_POST["name2"],ENT_QUOTES); }?>" required>
</li>
<li>Email :<br />
<input type="email" name="email2" value="<?php if (!empty($_POST["email2"])) {
echo htmlspecialchars($_POST["email2"],ENT_QUOTES); }?>" required>
</li>
<li>Your message :<br />
<textarea name="details2" ></textarea>
</li>
<li>
<input id="send_form_hello" name="envoi2" type="submit" value="submit">
</li>
</ul>
</fieldset>
</form>
<?php
}
else {
$his_name2 = $_POST["name2"];
$his_email2 = $_POST["email2"];
$his_message2 = $_POST["details2"];
$my_email2 = "[email protected]";
$my_name2 = "monnom";
$my_url2 = "contact.php";
$message_for_me2 ="Message";
$accuse_pour_lui2 ="Accusé";
$subject_for_me2 = 'objet pour moi';
$subject_for_him2 = 'objet pour lui';
$entete3 = "From: " . $his_name2 . " <" . $his_email2 . ">\n";
$entete3 .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$entete3 .='Content-Transfer-Encoding: 8bit';
$entete4 = "From: " . $my_name2 . " <" . $my_email2 . ">\n";
$entete4 .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$entete4 .='Content-Transfer-Encoding: 8bit';
}
?>
</div>
<?php if (@mail($my_email2,$subject_for_me2,$message_for_me2,$entete3)){
echo "<p style=\"position: absolute; top: 30px; left:45%; width: 140px; height: 65px;
background-color: #000; margin: 50px auto 0 auto;
padding: 15px 25px 25px 15px; text-align:center; color: white;\">Votre message est envoyé.<br /><br />
<a href=\"contact.php\" style=\"text-decoration: none; text-decoration: underline; color: #3744c1; \">OK</a>
</p>\n";
} ?>
</div>
</div>
<footer></footer>
</div>
</body>
</html>
Voila deux jours que je bloque sur un formulaire qui ne fonctionne qu'en apparence... Je m'explique :
il s'agit d'un formulaire partagé en 2 onglets : "proposition de projet" et "dire bonjour" (je le précise car c'est peut-être le script qui fait des siennes...). Le formulaire et le php se trouvent sur une seule et même page.
Comme je le disais, en apparence tout fonctionne bien (validation, confirmation d'envoi,...) mais le hic (et sans doute le plus important) c'est qu'au final, je ne reçois rien sur la boîte email qui est liée.
Pourtant, tout semble clair (j'essaie de commenter au maximum) mais je ne vois vraiment pas ce qui coince...
Quelqu'un pourrait-il m'aider ?
D'avance merci !!
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script>
$(document).ready(function() {
$("#content div").hide();
$("#tabs li:first").attr("id","current");
$("#content div:first").fadeIn();
$('#tabs a').click(function(e) {
e.preventDefault();
$("#content div").hide();
$("#tabs li").attr("id","");
$(this).parent().attr("id","current");
$('#' + $(this).attr('title')).fadeIn();
});
})();
</script>
</head>
<body>
<div class="container">
<section id="contact">
<h2>- CONTACT -</h2>
<div id="forms">
<ul id="tabs">
<li><a href="#" title="project">Proposition de projet</a></li>
<li><a href="#" title="hello">Dire bonjour...</a></li>
</ul>
<div id="content">
<div id="project">
<?php
if (isset($_POST["envoi"])){
$etat = "erreur";
// On arrange la mise en forme
if (isset($_POST["name"])) $_POST["name"]=trim(stripslashes($_POST["name"]));
if (isset($_POST["email"])) $_POST["email"]=trim(stripslashes($_POST["email"]));
if (isset($_POST["details"])) $_POST["details"]=trim(stripslashes($_POST["details"]));
// validité des champs
if (empty($_POST["name"])) { // L'utilisateur n'a pas rempli le champ nom
$erreur=''; // l'erreur sera affichée
}
elseif (empty($_POST["email"])) { // L'utilisateur n'a pas rempli le champ email
$erreur='';
}
// vérification du type [email protected]
elseif (!preg_match("$[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email"])){
$erreur='';
}
elseif (empty($_POST["location"])) {
$erreur='';
}
elseif (empty($_POST["details"])) {
$erreur='';
}
else { // Si tous les champs sont valides, l'état est ok
$etat="ok";
}
}
else { // Sinon le formulaire n'a pas été soumis
$etat="attente"; // On passe en attente
}
if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
if ($etat=="erreur"){ // le formulaire a été soumis mais il y a des erreurs --> on affiche l'erreur
echo "<span style=\"color:red \">".$erreur."</span><br /><br />\n";
} ?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" name="form_project" id="form_project">
<fieldset>
<ul>
<li>Name :<br />
<input type="text" name="name" value="<?php if (!empty($_POST["name"])) {
echo htmlspecialchars($_POST["name"],ENT_QUOTES);}?>" required >
</li>
<li>Email :<br />
<input type="email" name="email" value="<?php if (!empty($_POST["email"])) {
echo htmlspecialchars($_POST["email"],ENT_QUOTES);}?>" required >
</li>
<li>Company (if applicable) :<br />
<input type="text" name="company" value="<?php if (!empty($_POST["company"])) {
echo htmlspecialchars($_POST["company"],ENT_QUOTES);}?>">
</li>
<li>Location :<br />
<input type="text" name="location" value="<?php if (!empty($_POST["location"])) {
echo htmlspecialchars($_POST["location"],ENT_QUOTES);}?>" required >
</li>
<li>Current website (if applicable) :<br />
<input type="text" name="website" value="<?php if (!empty($_POST["website"])) {
echo htmlspecialchars($_POST["website"],ENT_QUOTES);}?>">
</li>
<li>Details :<br />
<textarea name="details" ></textarea>
</li>
<li>
<input id="send_form_project" name="envoi" type="submit" value="submit">
</li>
</ul>
</fieldset>
</form>
<?php }
else { // état est ok --> on envoie le mail
$his_name = $_POST["name"];
$his_email = $_POST["email"];
$his_message = $_POST["details"];
$my_email = "[email protected]"; // Mise en forme du message que vous recevrez
$my_name = "mon nom";
$my_url = "contact.php";
$message_for_me =" Voici le message :\n\n Project proposal : \n\n Name : ".$_POST["name"]."\n\n Email: ".$_POST["email"]."\n\n Company: ".$_POST["company"]."\n\n Location: ".$_POST["location"]."\n\n Website: ".$_POST["website"]."\n\n Details: ".$_POST["details"]."\n";
// Mise en forme de l'accusé réception qu'il recevra
$accuse_pour_lui ="Message";
$subject_for_me = 'sujet pour moi';
$subject_for_him = 'sujet pour lui';
// Envoie du mail pour moi
$entete1 = "From: " . $his_name . " <" . $his_email . ">\n";
$entete1 .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$entete1 .='Content-Transfer-Encoding: 8bit';
// Envoie du mail pour lui
$entete2 = "From: " . $my_name . " <" . $my_email . ">\n";
$entete2 .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$entete2 .='Content-Transfer-Encoding: 8bit';
}
// Confirmation du mail envoyé
if (@mail($my_email,$subject_for_me,$message_for_me,$entete1)){
echo "<p style=\" position: absolute; top: 50%; left: 50%; width: 140px; height: 65px;
background-color: #000; margin: 50px auto 0 auto;
padding: 15px 25px 25px 15px; text-align:center; color: white;\">Votre message est envoyé.<br/><br />
<a href=\"contact.php\" style=\"text-decoration: none; text-decoration: underline; color: #3744c1; \">OK</a>
</p>\n";
} ?>
</div>
<div id="hello">
<?php
if (isset($_POST["envoi2"])){
$etat = "erreur";
if (isset($_POST["name2"])) $_POST["name2"]=trim(stripslashes($_POST["name2"]));
if (isset($_POST["email2"])) $_POST["email2"]=trim(stripslashes($_POST["email2"]));
if (isset($_POST["details2"])) $_POST["details2"]=trim(stripslashes($_POST["details2"]));
if (empty($_POST["name2"])) {
$erreur='';
}
elseif (empty($_POST["email2"])) {
$erreur='';
}
elseif (!preg_match("$[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email2"])){
$erreur='';
}
elseif (empty($_POST["details2"])) {
$erreur='';
}
else {
$etat="ok";
}
}
else {
$etat="attente";
}
if ($etat!="ok"){
if ($etat=="erreur"){
echo "<span style=\"color:red \">".$erreur."</span><br /><br />\n";
}
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" name="form_hello" id="form_hello">
<fieldset>
<ul>
<li>Name :<br />
<input type="text" name="name2" value="<?php if (!empty($_POST["name2"])) {
echo htmlspecialchars($_POST["name2"],ENT_QUOTES); }?>" required>
</li>
<li>Email :<br />
<input type="email" name="email2" value="<?php if (!empty($_POST["email2"])) {
echo htmlspecialchars($_POST["email2"],ENT_QUOTES); }?>" required>
</li>
<li>Your message :<br />
<textarea name="details2" ></textarea>
</li>
<li>
<input id="send_form_hello" name="envoi2" type="submit" value="submit">
</li>
</ul>
</fieldset>
</form>
<?php
}
else {
$his_name2 = $_POST["name2"];
$his_email2 = $_POST["email2"];
$his_message2 = $_POST["details2"];
$my_email2 = "[email protected]";
$my_name2 = "monnom";
$my_url2 = "contact.php";
$message_for_me2 ="Message";
$accuse_pour_lui2 ="Accusé";
$subject_for_me2 = 'objet pour moi';
$subject_for_him2 = 'objet pour lui';
$entete3 = "From: " . $his_name2 . " <" . $his_email2 . ">\n";
$entete3 .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$entete3 .='Content-Transfer-Encoding: 8bit';
$entete4 = "From: " . $my_name2 . " <" . $my_email2 . ">\n";
$entete4 .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$entete4 .='Content-Transfer-Encoding: 8bit';
}
?>
</div>
<?php if (@mail($my_email2,$subject_for_me2,$message_for_me2,$entete3)){
echo "<p style=\"position: absolute; top: 30px; left:45%; width: 140px; height: 65px;
background-color: #000; margin: 50px auto 0 auto;
padding: 15px 25px 25px 15px; text-align:center; color: white;\">Votre message est envoyé.<br /><br />
<a href=\"contact.php\" style=\"text-decoration: none; text-decoration: underline; color: #3744c1; \">OK</a>
</p>\n";
} ?>
</div>
</div>
<footer></footer>
</div>
</body>
</html>