Problème formulaire PHP. Données non envoyées
Résolu
MananaMo
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
MananaMo Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
MananaMo Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà mon problème. J'ai rédigé un script pour que, lorsque l'utilisateur clique sur Envoyer, les données du formulaire soient transmises vers une adresse e-mail ( pas de base de données pour le moment).
Mais le problème c'est que lorsque les données sont envoyées, elles n'arrivent pas à destination et aucune erreur ne m'est renvoyée.
Voici le code utilisé :
Oui c'est assez long , désolée, mais peut-être y'a t-il une erreur quelque part? En tout cas, merci si quelqu'un sait m'aider.
Voilà mon problème. J'ai rédigé un script pour que, lorsque l'utilisateur clique sur Envoyer, les données du formulaire soient transmises vers une adresse e-mail ( pas de base de données pour le moment).
Mais le problème c'est que lorsque les données sont envoyées, elles n'arrivent pas à destination et aucune erreur ne m'est renvoyée.
Voici le code utilisé :
<?php require ('entete.php'); ?> <DIV id="principal"> <?php //paramètres $destinataire = 'XXXXXX@gmail.com'; $copie = 'non'; //à l'expéditeur du message $message_envoye = "Votre message nous est bien parvenu !"; $message_non_envoye = "L'envoi de l'e-mail a échoué, veuillez réessayer SVP."; $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.php\">envoyer le formulaire</a>."; $message_formulaire_invalide = "Vérifiez que tous les champs sont bien remplis et que l'email est sans erreur."; //fonctions spécifiques function Rec($text) { $text = trim($text); // delete white spaces after & before text if (1 === get_magic_quotes_gpc()) { $stripslashes = create_function('$txt', 'return stripslashes($txt);'); } else { $stripslashes = create_function('$txt', 'return $txt;'); } // magic quotes ? $text = $stripslashes($text); $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well $text = nl2br($text); return $text; }; function IsEmail($email) { $pattern = "~^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$~"; return (preg_match($pattern,$email)) ? true : false; }; // on teste si le formulaire a été soumis if (!isset($_GET['envoyer'])) { // formulaire non envoyé echo '<p>'.$message_erreur_formulaire.'</p>'."\n"; } else { //tests et récupération de la QS $nom = (isset($_GET['nom'])) ? Rec($_GET['nom']) : ''; $prenom = (isset($_GET['prenom'])) ? Rec($_GET['prenom']) : ''; $pseudo = (isset($_GET['pseudo'])) ? Rec($_GET['pseudo']) : ''; $email = (isset($_GET['e-mail'])) ? Rec($_GET['e-mail']) : ''; $age = (isset($_GET['age'])) ? Rec($_GET['age']) : ''; $objet = (isset($_GET['objet'])) ? Rec($_GET['objet']) : ''; $message = (isset($_GET['message'])) ? Rec($_GET['message']) : ''; //vérification de l'e-mail et des variables $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré if (($nom != '') && ($prenom != '') && ($email != '') && ($age != '') && ($objet != '') && ($message != '')) { // les 7 variables sont non vides, on génère puis envoie l' e-mail $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n"; // 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,'données envoyées par le destinataire : nom = "' . $nom . '" ; prenom = "' . $prenom . '" ; pseudo = "' . $pseudo . '" ; e-mail = "' . $email . '" ; age = "' . $age .'" ; objet = "' . $objet . '" ; message : ' . $message, $headers)) { echo '<p>'.$message_envoye.'</p>'."\n"; } else { echo '<p>'.$message_non_envoye.'</p>'."\n"; }; } else { // une des variables est vide echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n"; }; }; // fin du if (!isset($_POST['envoi'])) ?> </DIV> <?php require ('pied_de_page.php'); ?>
Oui c'est assez long , désolée, mais peut-être y'a t-il une erreur quelque part? En tout cas, merci si quelqu'un sait m'aider.
A voir également:
- Problème formulaire PHP. Données non envoyées
- Whatsapp formulaire opposition - Guide
- Fuite données maif - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
4 réponses
as tu verifié avec echo ou mail, que tout est bon? je veux dire juste avant la procession de la function mail?
Oui, ça fonctionne. En fait, les données sont correctement transmises en localhost, mais pour ce qui est de l'envoi à travers le serveur, aucune réponse de ce côté. J'ai essayé de changer l'adresse de destination, mais il n'y a pas d'évolution. Serait-ce une erreur au niveau du serveur?
Le serveur supporte bien la fonction mail. J'avoue que je ne comprends pas ce qui peut bloquer autrement, c'en est désespérant.
Alors, oui, les echo répondent, en local. Mais voilà que j'ai trouvé la solution. Finalement, j'ai eu une fausse information et c'est bien le serveur mail qui fait défaut de ce point là. En effet, pour éviter les spams, la fonction mail n'a pas été activée. Autant dire que je suis déçue, mais bon. Merci en tout cas pour avoir essayé de m'apporter ton aide ;)