Probleme formulaire de réservation
martin.j
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Zep3k!GnO Messages postés 2025 Date d'inscription Statut Membre Dernière intervention -
Zep3k!GnO Messages postés 2025 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Cela fait un moment que je cherche la solution sur internet et divers forum mais je ne trouve pas. Mon problème est que j'ai créer un formulaire ( formulaire récupérer sur internet et modifié ) qui a comme champs : Le nom, l'adresse mail, le numero de telephone, la date et l'heure de reservation. Hors lors de l'envoie du mail, la date et l'heure sélectionnées ne s'affichent pas dans le mail. Donc si vous pouvez m'aider à y voir plus clair et comprendre ce qu'il ne va pas ce serait super !
Voilà le code :
<body>
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'lateinturerie.roubaix@gmail.com';
// copie ? (envoie une copie au visiteur)
$copie = 'oui';
// Action du formulaire (si votre page a des paramètres dans l'URL)
// si cette page est index.php?page=contact alors mettez index.php?page=contact
// sinon, laissez vide
$form_action = '';
// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
// Message d'erreur du formulaire
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = htmlspecialchars(trim($text), ENT_QUOTES);
if (1 === get_magic_quotes_gpc())
{
$text = stripslashes($text);
}
$text = nl2br($text);
return $text;
};
/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\'\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\'\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
return (($value === 0) || ($value === false)) ? false : true;
}
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['tel'])) ? Rec($_POST['tel']) : '';
$message = (isset($_POST['date'])) ? Rec($_POST['date']) : '';
$message = (isset($_POST['heure'])) ? Rec($_POST['heure']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
if (isset($_POST['envoi']))
{
if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From:'.$nom.' <'.$email.'>' . "\r\n";
$mail = " Nom : $nom\n E-mail : $email\n Message : $message \n $date\n $heure\n";
//$headers .= 'Reply-To: '.$email. "\r\n" ;
//$headers .= 'X-Mailer:PHP/'.phpversion();
// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};
// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);
// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>';
}
else
{
echo '<p>'.$message_non_envoye.'</p>';
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.'</p>';
$err_formulaire = true;
};
}; // fin du if (!isset($_POST['envoi']))
if (($err_formulaire) || (!isset($_POST['envoi'])))
{
// afficher le formulaire
echo '
<form id="contact" method="post" action="'.$form_action.'">
<p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" /></p>
<p><label for="email">Email :</label><input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" /></p>
<p><label for="email">Tel* :</label><input type="text" id="tel" name="tel" value="'.stripslashes($tel).'" tabindex="3" /></p>
<p><label for="email">Date* :</label><input type="text" id="datepicker" name="date" value="'.stripslashes($date).'" tabindex="4" /></p>
<select name="heureExp" id="heure" name="heure" value="'.stripslashes($heure).'" tabindex="5" >
<option value="12H00">12H00</option>
<option value="12H15">12H15</option>
<option value="12H30">12H30</option>
<option value="12H45">12H45</option>
<option value="13H00">13H00</option>
<option value="13H15">13H15</option>
<option value="13H30">13H30</option>
<option value="13H45">13H45</option>
<option value="14H00">14H00</option>
</select>
<p><label for="message">Message :</label><textarea id="message" name="message" tabindex="6" cols="30" rows="8">'.stripslashes($message).'</textarea></p>
<div style="text-align:center;"><input type="submit" id="go" name="envoi" value="Envoyer" /></div>
</form>';
};
?>
</div>
</body>
Cela fait un moment que je cherche la solution sur internet et divers forum mais je ne trouve pas. Mon problème est que j'ai créer un formulaire ( formulaire récupérer sur internet et modifié ) qui a comme champs : Le nom, l'adresse mail, le numero de telephone, la date et l'heure de reservation. Hors lors de l'envoie du mail, la date et l'heure sélectionnées ne s'affichent pas dans le mail. Donc si vous pouvez m'aider à y voir plus clair et comprendre ce qu'il ne va pas ce serait super !
Voilà le code :
<body>
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'lateinturerie.roubaix@gmail.com';
// copie ? (envoie une copie au visiteur)
$copie = 'oui';
// Action du formulaire (si votre page a des paramètres dans l'URL)
// si cette page est index.php?page=contact alors mettez index.php?page=contact
// sinon, laissez vide
$form_action = '';
// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
// Message d'erreur du formulaire
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = htmlspecialchars(trim($text), ENT_QUOTES);
if (1 === get_magic_quotes_gpc())
{
$text = stripslashes($text);
}
$text = nl2br($text);
return $text;
};
/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\'\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\'\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
return (($value === 0) || ($value === false)) ? false : true;
}
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['tel'])) ? Rec($_POST['tel']) : '';
$message = (isset($_POST['date'])) ? Rec($_POST['date']) : '';
$message = (isset($_POST['heure'])) ? Rec($_POST['heure']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
if (isset($_POST['envoi']))
{
if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From:'.$nom.' <'.$email.'>' . "\r\n";
$mail = " Nom : $nom\n E-mail : $email\n Message : $message \n $date\n $heure\n";
//$headers .= 'Reply-To: '.$email. "\r\n" ;
//$headers .= 'X-Mailer:PHP/'.phpversion();
// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};
// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);
// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>';
}
else
{
echo '<p>'.$message_non_envoye.'</p>';
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.'</p>';
$err_formulaire = true;
};
}; // fin du if (!isset($_POST['envoi']))
if (($err_formulaire) || (!isset($_POST['envoi'])))
{
// afficher le formulaire
echo '
<form id="contact" method="post" action="'.$form_action.'">
<p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" /></p>
<p><label for="email">Email :</label><input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" /></p>
<p><label for="email">Tel* :</label><input type="text" id="tel" name="tel" value="'.stripslashes($tel).'" tabindex="3" /></p>
<p><label for="email">Date* :</label><input type="text" id="datepicker" name="date" value="'.stripslashes($date).'" tabindex="4" /></p>
<select name="heureExp" id="heure" name="heure" value="'.stripslashes($heure).'" tabindex="5" >
<option value="12H00">12H00</option>
<option value="12H15">12H15</option>
<option value="12H30">12H30</option>
<option value="12H45">12H45</option>
<option value="13H00">13H00</option>
<option value="13H15">13H15</option>
<option value="13H30">13H30</option>
<option value="13H45">13H45</option>
<option value="14H00">14H00</option>
</select>
<p><label for="message">Message :</label><textarea id="message" name="message" tabindex="6" cols="30" rows="8">'.stripslashes($message).'</textarea></p>
<div style="text-align:center;"><input type="submit" id="go" name="envoi" value="Envoyer" /></div>
</form>';
};
?>
</div>
</body>
A voir également:
- Probleme formulaire de réservation
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Webmastering
- Problème avec Google Chrome - Forum Google Chrome
4 réponses
Salut,
tu as plusieurs erreurs :
-1] Dans le HTML, pour la date, tu as mis 2 noms différents : <select name="heureExp" id="heure" name="heure" value="'.stripslashes($heure).'" tabindex="5" >
-2] Dans le PhP, là ou tu récupères tes valeur en post, tu fais set la variable alors que tu veux une concaténation :
tu as plusieurs erreurs :
-1] Dans le HTML, pour la date, tu as mis 2 noms différents : <select name="heureExp" id="heure" name="heure" value="'.stripslashes($heure).'" tabindex="5" >
-2] Dans le PhP, là ou tu récupères tes valeur en post, tu fais set la variable alors que tu veux une concaténation :
// formulaire envoyé, on récupère tous les champs. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $objet = (isset($_POST['tel'])) ? Rec($_POST['tel']) : ''; $message = (isset($_POST['date'])) ? Rec($_POST['date']) : ''; $message .= (isset($_POST['heure'])) ? Rec($_POST['heure']) : ''; $message .= (isset($_POST['message'])) ? Rec($_POST['message']) : '';
merci ca fonctionne !
par contre la date et l'heure ne sont pas séparées par un espace... comment faire ?
par contre la date et l'heure ne sont pas séparées par un espace... comment faire ?
Bonjour,
Deja n'aurait tu pas un probleme pour afficher ton formulaire correctement ?
Car quand je copie ton code dans notepad (en rajoutant les <?php et ?>)
A la ligne 73, t'aurais un probleme avec ton remplacement de caractères
Cet erreur empecherait d'executer le code qui suit, alors remplace ca par
Merci de me tenir au courant si il y a du changement
Deja n'aurait tu pas un probleme pour afficher ton formulaire correctement ?
Car quand je copie ton code dans notepad (en rajoutant les <?php et ?>)
A la ligne 73, t'aurais un probleme avec ton remplacement de caractères
$message = str_replace(""",'"',$message);
Cet erreur empecherait d'executer le code qui suit, alors remplace ca par
$message = str_replace('"','"',$message);
Merci de me tenir au courant si il y a du changement
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $objet = (isset($_POST['tel'])) ? Rec($_POST['tel']) : ''; $message = (isset($_POST['date'])) ? Rec($_POST['date']).' ' : '';//Ajout d'un espace après la date. $message .= (isset($_POST['heure'])) ? Rec($_POST['heure']) : ''; $message .= (isset($_POST['message'])) ? Rec($_POST['message']) : '';