Page 1 sur 1

non reception de mail venant d'un formulaire

Posté : 21 oct. 2020, 01:11
par abyss67
Bonjour à tous,

J'ai un soucis d'envoi de donnés d'un formulaire sur une adresse mail :
Voici le code :

<?php
/* Récupération des informations du formulaire*/
if (get_magic_quotes_gpc())
{
$nom = stripslashes(trim($_POST['nom']));
$prenom = stripslashes(trim($_POST['prenom']));
$societe = stripslashes(trim($_POST['societe']));
$code = stripslashes(trim($_POST['code']));
$ville = stripslashes(trim($_POST['ville']));
$telephone = stripslashes(trim($_POST['telephone']));
$mail = stripslashes(trim($_POST['mail']));
$motif = stripslashes(trim($_POST['motif']));
$message = stripslashes(trim($_POST['message']));
}
else
{
$nom = trim($_POST['nom']);
$prenom = trim($_POST['prenom']);
$societe = trim($_POST['societe']);
$adresse = trim($_POST['adresse']);
$code = trim($_POST['code']);
$ville = trim($_POST['ville']);
$telephone = trim($_POST['telephone']);
$mail = trim($_POST['mail']);
$motif = trim($_POST['motif']);
$message = trim($_POST['message']);
}
/*Vérifie si l'adresse mail est au bon format */
$regex_mail = '/^[-+.w]{1,64}@[-.w]{1,64}.[-.w]{2,6}$/i';
/*Verifie qu il n y est pas d en tête dans les données*/
$regex_head = '/[nr]/';
/*Vérifie qu il n y est pas d erreur dans adresse mail*/
if (!preg_match($regex_mail, $mail))
{
$courriel = 1;
}
/* On affiche l'erreur s'il y en a une */
if (!empty($alert))
{
$courriel = 0;
}
/* On vérifie qu'il n'y a aucun header dans les champs */
if (preg_match($regex_head, $nom)
|| preg_match($regex_head, $prenom)
|| preg_match($regex_head, $societe)
|| preg_match($regex_head, $adresse)
|| preg_match($regex_head, $code)
|| preg_match($regex_head, $ville)
|| preg_match($regex_head, $telephone)
|| preg_match($regex_head, $mail)
|| preg_match($regex_head, $motif)
|| preg_match($regex_head, $message))
{
$alert = 'En-têtes interdites dans les champs du formulaire';
}
else
{
$header = 1;
}
/* On affiche l'erreur s'il y en a une */
if (!empty($alert))
{
$header = 0;
}
if (empty($telephone)
|| empty($nom)
|| empty($message))
{
$alert = 'Tous les champs doivent être renseignés';
}
else
{
$renseigne = 1;
}
/* On affiche l'erreur s'il y en a une */
if (!empty($alert))
{
$renseigne = 0;
}
/* Si les variables sont bonne */
if ($renseigne == 1 AND $header == 1 AND $courriel == 1)
{
/*Envoi du mail*/

/*Le destinataire*/
$to="[email protected]";

/*Le sujet du message qui apparaitra*/
$sujet="Demande de devis";
$msg = '';
/*Le message en lui même*/
/*$msg = 'Mail envoye depuis le site' "rnrn";*/
$msg .= 'Nom : '.$nom."rnrn";
$msg .= 'Prenom : '.$prenom."rnrn";
$msg .= 'Societe : '.$societe."rnrn";
$msg .= 'Adresse : '.$adresse."rnrn";
$msg .= 'Code : '.$code."rnrn";
$msg .= 'Ville : '.$ville."rnrn";
$msg .= 'Telephone : '.$telephone."rnrn";
$msg .= 'Mail : '.$mail."rnrn";
$msg .= 'Motif : '.$motif."rnrn";
$msg .= 'Message : '.$message."rnrn";

/*Les en-têtes du mail*/
$headers = 'From: MESSAGE DU SITE STRASSDEVIS<[email protected]>'."rn";
$headers .= "rn";
/*L'envoi du mail - Et page de redirection*/
mail($to, $sujet, $msg, $headers);
header('Location:http://www.strassdevis.fr/contactmerci.htm');
}
else
{
header('Location:http://www.strassdevis.fr/contactmerci.htm');
}
?>

Manifestement rien n'arrive sur le mail [email protected].
Le formulaire est une page html et le traitement est sur une page php. Les deux sont à la racine du site.
De plus je viens de constater que lorsque que je remplis les champs et que j'en oublie volontairement, je n'ai pas de message d'alerte alors que le script est censé avertir l’utilisateur.
Si quelqu'un peut me renseigner.....le php et moi ça date d'une semaine. Le script, plus haut, est une copie d'un site de partage et je l'ai adapté à mes critères.
Merci :D

Re: non reception de mail venant d'un formulaire

Posté : 21 oct. 2020, 08:21
par @rthur
Désactive la redirection (=met en commentaire les header(...)) et regarde si tu as des messages d'erreur qui s'affiche déjà.
Si tu n'en a pas, vérifie dans les logs de ton serveur.

Quoiqu'il en soit quand je vois la chaine de caractères "rnrn", je me dit que le code que tu as récupéré est incorrect.

Re: non reception de mail venant d'un formulaire

Posté : 21 oct. 2020, 11:43
par abyss67
merci pour la réponse.
Les saut de ligne "rnrn" n'en sont pas, effectivement. Je vais les passer en "r\n"
Quand tu dis de désactiver la redirection, ça veut dire quoi ?

Re: non reception de mail venant d'un formulaire

Posté : 21 oct. 2020, 13:35
par or 1
Quand tu dis de désactiver la redirection, ça veut dire quoi ?
mettre en commentaire, par exemple :
/*Les en-têtes du mail*/

commencer par ne mettre que
mail("[email protected]", "sujet", "msg");
permet de savoir si l'email part et est bien reçu (éventuellement en indésirable).

Re: non reception de mail venant d'un formulaire

Posté : 21 oct. 2020, 15:32
par abyss67
j'ai mis les lignes en commentaires....sans changement, le mail n'arrive pas.
Ensuite tu évoques cette ligne : mail("[email protected]", "sujet", "msg");
chez moi c'est :mail($to, $sujet, $msg, $headers);........;tu veux dire que cette expression est fausse ? dans les parenthèses je dois mettre l'email de destination ? Même si celui-ci est déjà mentionné plus haut ?