|
La Communauté Webmaster 
| Pages: [1] |
 |
|
|
|
Auteur |
Sujet: PHP invisible (Lu 9819 fois) |
|
 |
PHP invisible
« sur: le 02-04-2013 a 18:35:15 » |
|
auron818
Membre récent

Hors-Ligne
Messages: 9

|
Bonjour à tous !!
Voilà je viens vers vous car j'essai de lancer un formulaire de contact sur mon site. Vraiment rien de bien compliqué, sauf que...
Je n'arrêtais pas de me retrouver avec une erreur (apparemment il fallait ajouter le fichier .htaccess qui devait contenir une ligne de commande)
Ca à l'air de fonctionner.., sauf que lorsque je tente d'envoi un mail via le formulaire de contact j'ai une page blanche qui s'affiche ensuite... je ne comprends pas pourquoi...
Pouvez-vous m'aider ??
Voici le code en question:
<?php /* Si le formulaire est envoyé alors on fait les traitements */ if (isset($_POST['envoye'])) { /* Récupération des valeurs des champs du formulaire */ if (get_magic_quotes_gpc()) { $nom = stripslashes(trim($_POST['nom'])); $prenom = stripslashes(trim($_POST['prenom'])); $email = stripslashes(trim($_POST['email'])); $liste_qui = stripslashes(trim($_POST['liste_qui'])); $message = stripslashes(trim($_POST['message'])); } else { $nom = trim($_POST['nom']); $prenom = trim($_POST['prenom']); $email = trim($_POST['email']); $liste_qui = trim($_POST['liste_qui']); $message = trim($_POST['message']); } /* Expression régulière permettant de vérifier si le * format d'une adresse e-mail est correct */ $regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i'; /* Expression régulière permettant de vérifier qu'aucun * en-tête n'est inséré dans nos champs */ $regex_head = '/[\n\r]/'; /* Si le formulaire n'est pas posté de notre site on renvoie * vers la page d'accueil */ if($_SERVER['HTTP_REFERER'] != 'http://www.entrepot-osswald.net/contacts.php') { header('Location: http://www.entrepot-osswald.net/'); } /* On vérifie que tous les champs sont remplis */ elseif (empty($nom) || empty($prenom) || empty($email) || empty($liste_qui) || empty($message)) { $alert = 'Tous les champs doivent être renseignés'; } /* On vérifie que le format de l'e-mail est correct */ elseif (!preg_match($regex_mail, $email)) { $alert = 'L\'adresse '.$email.' n\'est pas valide'; } /* On vérifie qu'il n'y a aucun header dans les champs */ elseif (preg_match($regex_head, $email) || preg_match($regex_head, $nom) || preg_match($regex_head, $prenom)) { $alert = 'En-têtes interdites dans les champs du formulaire'; } /* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */ elseif (!isset($_COOKIE['sent'])) { /* Destinataire (mon adresse mail) */ $to = 'auron818@free.fr'; /* Construction du message */ $msg = 'Bonjour,'."\r\n\r\n"; $msg .= 'Ce mail a été envoyé depuis entrepot-osswald.net par '.$nom.' '.$prenom.' '.$liste_qui."\r\n\r\n"; $msg .= 'Voici le message qui vous est adressé :'."\r\n"; $msg .= '***************************'."\r\n"; $msg .= $message."\r\n"; $msg .= '***************************'."\r\n"; /* En-têtes de l'e-mail */ $headers = 'From: '.$nom.' '.$prenom.' <'.$email.'>'."\r\n\r\n"; /* Envoi de l'e-mail */ if (mail($to, $nom, $msg, $headers)) { $alert = 'E-mail envoyé avec succès'; /* On créé un cookie de courte durée (ici 120 secondes) pour éviter de * renvoyer un mail en rafraichissant la page */ setcookie("sent", "1", time() + 120); /* On détruit la variable $_POST */ unset($_POST); } else { $alert = 'Erreur d\'envoi de l\'e-mail'; } } /* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */ else { unset($_POST); } } ?> |
|
<form id="form" method="post" action="contacts.php"> <p> <input name="nom" type="text" id="nom" placeholder="Votre nom" required /> <label for="nom">Nom</label> </p> <p> <input name="prenom" type="text" id="prenom" placeholder="Votre prenom" required /> <label for="name">Prenom</label> </p> <p> <input name="email" type="email" id="email" placeholder="Votre email" required /> <label for="name">em@il</label> </p> <p> <select name="liste_qui" id="liste_qui"> <option value="choisissez">Choisissez...</option> <option value="particulier">Particulier</option> <option value="professionnel">Professionnel</option> </select><br /> <label for="message"></label> <textarea name="message" id="message" rows="10" cols="50" placeholder="Entrez votre message ici"></textarea> </p> <p> <input type="submit" value="envoyer" id="envoyer" /> </form> |
| |
|
|
|
|
|
|
 |
Re:PHP invisible
« Répondre #1 sur: le 02-04-2013 a 19:13:54 » |
|
|
|
|
 |
Re:PHP invisible
« Répondre #2 sur: le 02-04-2013 a 19:44:26 » |
|
|
|
|
 |
Re:PHP invisible
« Répondre #3 sur: le 03-04-2013 a 09:44:46 » |
|
|
|
|
 |
Re:PHP invisible
« Répondre #4 sur: le 03-04-2013 a 10:55:40 » |
|
|
|
|
 |
Re:PHP invisible
« Répondre #5 sur: le 03-04-2013 a 21:59:28 » |
|
auron818
Membre récent

Hors-Ligne
Messages: 9

|
Bonjour,
merci beaucoup pour votre aide. J'ai donc ajouter ces lignes à mon code php mais je me retrouve avec une erreur:
Array ( [nom] => a [prenom] => a [email] => a@a.fr [liste_qui] => professionnel [message] => 654 [envoyer] => envoyer ) Warning: Cannot modify header information - headers already sent by (output started at /home/auron818/public_html/contacts.php:4) in /home/auron818/public_html/contacts.php on line 36 |
|
Voici mon code php:
<?php /* Si le formulaire est envoyé alors on fait les traitements */ if (isset($_POST['envoyer'])) print_r($_POST); { /* Récupération des valeurs des champs du formulaire */ if (get_magic_quotes_gpc()) { $nom = stripslashes(trim($_POST['nom'])); $prenom = stripslashes(trim($_POST['prenom'])); $email = stripslashes(trim($_POST['email'])); $liste_qui = stripslashes(trim($_POST['liste_qui'])); $message = stripslashes(trim($_POST['message'])); } else { $nom = trim($_POST['nom']); $prenom = trim($_POST['prenom']); $email = trim($_POST['email']); $liste_qui = trim($_POST['liste_qui']); $message = trim($_POST['message']); } /* Expression régulière permettant de vérifier si le * format d'une adresse e-mail est correct */ $regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i'; /* Expression régulière permettant de vérifier qu'aucun * en-tête n'est inséré dans nos champs */ $regex_head = '/[\n\r]/'; /* Si le formulaire n'est pas posté de notre site on renvoie * vers la page d'accueil */ if($_SERVER['HTTP_REFERER'] != 'http://www.entrepot-osswald.net/contacts.php') { header('Location: http://www.entrepot-osswald.net/contacts.php'); } /* On vérifie que tous les champs sont remplis */ elseif (empty($nom) || empty($prenom) || empty($email) || empty($liste_qui) || empty($message)) { $alert = 'Tous les champs doivent être renseignés'; } /* On vérifie que le format de l'e-mail est correct */ elseif (!preg_match($regex_mail, $email)) { $alert = 'L\'adresse '.$email.' n\'est pas valide'; } /* On vérifie qu'il n'y a aucun header dans les champs */ elseif (preg_match($regex_head, $email) || preg_match($regex_head, $nom) || preg_match($regex_head, $prenom)) { $alert = 'En-têtes interdites dans les champs du formulaire'; } /* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */ elseif (!isset($_COOKIE['sent'])) { /* Destinataire (mon adresse mail) */ $to = 'auron818@free.fr'; /* Construction du message */ $msg = 'Bonjour,'."\r\n\r\n"; $msg .= 'Ce mail a été envoyé depuis entrepot-osswald.net par '.$nom.' '.$prenom.' '.$liste_qui."\r\n\r\n"; $msg .= 'Voici le message qui vous est adressé :'."\r\n"; $msg .= '***************************'."\r\n"; $msg .= $message."\r\n"; $msg .= '***************************'."\r\n"; /* En-têtes de l'e-mail */ $headers = 'From: '.$nom.' '.$prenom.' <'.$email.'>'."\r\n\r\n"; /* Envoi de l'e-mail */ if (mail($to, $nom, $msg, $headers)) { $alert = 'E-mail envoyé avec succès'; /* On créé un cookie de courte durée (ici 120 secondes) pour éviter de * renvoyer un mail en rafraichissant la page */ setcookie("sent", "1", time() + 120); /* On détruit la variable $_POST */ unset($_POST); } else { $alert = 'Erreur d\'envoi de l\'e-mail'; } } /* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */ else { unset($_POST); } exit; } ?>
|
|
Je ne comprends vraiment pas pourquoi mon formulaire ne fonctionne pas... Voici ce que contient mon fichier .htaccess: |
|
|
|
|
 |
Re:PHP invisible
« Répondre #6 sur: le 03-04-2013 a 22:08:19 » |
|
|
|
|
 |
Re:PHP invisible
« Répondre #7 sur: le 04-04-2013 a 00:55:58 » |
|
auron818
Membre récent

Hors-Ligne
Messages: 9

|
Bonjour,
Merci beaucoup pour l'aide précieuse que vous m'apportez !! Je me retrouve actuellement devant un message d'erreur:
Array ( [nom] => Nicolas [prenom] => Alexia [email] => auron818@free.fr [liste_qui] => particulier [message] => 156 [envoyer] => envoyer ) http://www.entrepot-osswald.net/contacts.html Warning: Cannot modify header information - headers already sent by (output started at /home/auron818/public_html/contacts.php:5) in /home/auron818/public_html/contacts.php on line 37 |
|
Voici mon code actuel:
<?php /* Si le formulaire est envoyé alors on fait les traitements */ if (isset($_POST['envoyer'])) { print_r($_POST); /* Récupération des valeurs des champs du formulaire */ if (get_magic_quotes_gpc()) { $nom = stripslashes(trim($_POST['nom'])); $prenom = stripslashes(trim($_POST['prenom'])); $email = stripslashes(trim($_POST['email'])); $liste_qui = stripslashes(trim($_POST['liste_qui'])); $message = stripslashes(trim($_POST['message'])); } else { $nom = trim($_POST['nom']); $prenom = trim($_POST['prenom']); $email = trim($_POST['email']); $liste_qui = trim($_POST['liste_qui']); $message = trim($_POST['message']); }
/* Expression régulière permettant de vérifier si le * format d'une adresse e-mail est correct */ $regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
/* Expression régulière permettant de vérifier qu'aucun * en-tête n'est inséré dans nos champs */ $regex_head = '/[\n\r]/';
/* Si le formulaire n'est pas posté de notre site on renvoie * vers la page d'accueil */ echo $_SERVER['HTTP_REFERER']; if($_SERVER['HTTP_REFERER'] != 'http://www.entrepot-osswald.net/contacts.php') { header('Location: http://www.entrepot-osswald.net/contacts.php'); } /* On vérifie que tous les champs sont remplis */ elseif (empty($nom) || empty($prenom) || empty($email) || empty($liste_qui) || empty($message)) { $alert = 'Tous les champs doivent être renseignés'; } /* On vérifie que le format de l'e-mail est correct */ elseif (!preg_match($regex_mail, $email)) { $alert = 'L\'adresse '.$email.' n\'est pas valide'; } /* On vérifie qu'il n'y a aucun header dans les champs */ elseif (preg_match($regex_head, $email) || preg_match($regex_head, $nom) || preg_match($regex_head, $prenom)) { $alert = 'En-têtes interdites dans les champs du formulaire'; } /* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */ elseif (!isset($_COOKIE['sent'])) { /* Destinataire (mon adresse mail) */ $to = 'auron818@free.fr';
/* Construction du message */ $msg = 'Bonjour,'."\r\n\r\n"; $msg .= 'Ce mail a été envoyé depuis entrepot-osswald.net par '.$nom.' '.$prenom.' '.$liste_qui."\r\n\r\n"; $msg .= 'Voici le message qui vous est adressé :'."\r\n"; $msg .= '***************************'."\r\n"; $msg .= $message."\r\n"; $msg .= '***************************'."\r\n";
/* En-têtes de l'e-mail */ $headers = 'From: '.$nom.' '.$prenom.' <'.$email.'>'."\r\n\r\n";
/* Envoi de l'e-mail */ if (mail($to, $nom, $msg, $headers)) { $alert = 'E-mail envoyé avec succès';
/* On créé un cookie de courte durée (ici 120 secondes) pour éviter de * renvoyer un mail en rafraichissant la page */ setcookie("sent", "1", time() + 120);
/* On détruit la variable $_POST */ unset($_POST); } else { $alert = 'Erreur d\'envoi de l\'e-mail'; }
} /* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */ else { unset($_POST); } exit; } ?> |
|
Désolé pour tout le temps que je vous fait perdre, merci de prendre autant de temps pour moi !! |
|
|
|
|
 |
Re:PHP invisible
« Répondre #8 sur: le 04-04-2013 a 10:52:30 » |
|
|
|
|
| Pages:
[1] |
|
|
|
| |
|
|