Formulaire contact php défectueux
Résolu
valérie_o.O
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
Yohan_ Messages postés 237 Date d'inscription Statut Membre Dernière intervention -
Yohan_ Messages postés 237 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis présentement en train de (d'essayer :P) de bâtir un formulaire de contact pour mon site, qui enverrai les réponses du formulaire à mon adresse e-mail (pas de base de données donc). Quelque chose de bien classique, dont on a des milliers d'exemples sur le net, me direz-vous.
Donc je bâtis mon .php à l'aide d'exemples que je trouve, des trucs très logique et tout, et il se trouve que les parties les plus simples sont celles qui ne fonctionnent pas x_x
Voici le code php:
Et bien comme c'est là, je peux envoyer un formulaire totalement vide sauf l'adresse email. Il semblerait que seule la ligne testant l'adresse email fonctionne, le reste passe comme dans du beurre :( Le if($sujet=="default"), c'est parce que c'est une liste déroulante dont la première valeur est default, j'ai fait exprès parce que je veux que les gens choisissent vraiment une des options... Donc voilà je suis débrouillarde autant que faire se peut, mais débutante aussi, et je ne vois pas ce qui ne pourrait pas marcher dans une ligne aussi simple que if ( $message == "" ) x_x
Merci de bien vouloir m'aider!
Je suis présentement en train de (d'essayer :P) de bâtir un formulaire de contact pour mon site, qui enverrai les réponses du formulaire à mon adresse e-mail (pas de base de données donc). Quelque chose de bien classique, dont on a des milliers d'exemples sur le net, me direz-vous.
Donc je bâtis mon .php à l'aide d'exemples que je trouve, des trucs très logique et tout, et il se trouve que les parties les plus simples sont celles qui ne fonctionnent pas x_x
Voici le code php:
<?php /* Email du destinataire (je l'ai changé exprès pour pas mettre la mienne ici quand même ;)*/ $destinataire = "monadresse@monserveur.com"; /* Récupération */ $nom = $_POST['nom']; $email = $_POST['email']; $sujet = $_POST['sujet']; $sujet = "Contact Form $sujet"; $message = $_POST['message']; $message = "$nom <$email> \r \r $message"; $headers= "From: ".$_POST['email']; /* Vérification */ if ( $message == "" ) { echo "Veuillez indiquer un message."; $erreur = true; } if($sujet=="default"){ echo "Veuillez choisir un sujet."; $erreur = true; } /* Vérification du mail */ if($email =="" OR !preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) { echo "Veuillez indiquer un email valide."; $erreur = true; } /* Envoi du mail */ if ( !$erreur ) { mail( $destinataire , $sujet , $message , $headers); echo "Le message a été envoyé."; } ?>
Et bien comme c'est là, je peux envoyer un formulaire totalement vide sauf l'adresse email. Il semblerait que seule la ligne testant l'adresse email fonctionne, le reste passe comme dans du beurre :( Le if($sujet=="default"), c'est parce que c'est une liste déroulante dont la première valeur est default, j'ai fait exprès parce que je veux que les gens choisissent vraiment une des options... Donc voilà je suis débrouillarde autant que faire se peut, mais débutante aussi, et je ne vois pas ce qui ne pourrait pas marcher dans une ligne aussi simple que if ( $message == "" ) x_x
Merci de bien vouloir m'aider!
A voir également:
- Formulaire contact php défectueux
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
- Recuperer contact carte sim - Guide
2 réponses
Salut,
Bon déja à priori, $message pourra jamais être == à "" puisque tu lui rentres :
$message = "$nom <$email> \r \r $message"
Ce qui, même si tes $nom, $mail et $message sont nuls, donnera au minimum "< >" ce qui n'est bien évidemment pas = à "".
Après, concernant la partie du choix du sujet et compagnie, faudrait voir le formulaire lié ^^
Bon déja à priori, $message pourra jamais être == à "" puisque tu lui rentres :
$message = "$nom <$email> \r \r $message"
Ce qui, même si tes $nom, $mail et $message sont nuls, donnera au minimum "< >" ce qui n'est bien évidemment pas = à "".
Après, concernant la partie du choix du sujet et compagnie, faudrait voir le formulaire lié ^^
<?php /* Email du destinataire*/ $destinataire = "blabla@bleble.com"; /* Récupération */ $nom = $_POST['nom']; $email = $_POST['email']; $sujet = $_POST['sujet']; $sujet = "Contact Form $sujet"; $message = $_POST['message']; $message = "$nom <$email> \r \r $message"; $headers= "From: ".$_POST['email']; /* Vérification */ if ( $_POST['message'] == "" ) { echo "Veuillez indiquer un message."; $erreur = true; } if ( $_POST['nom'] == "" ) { echo "Veuillez indiquer votre nom."; $erreur = true; } if($_POST['sujet']=="default"){ echo "Veuillez choisir un sujet."; $erreur = true; } /* Vérification du mail */ if($email =="" OR !preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) { echo "Veuillez indiquer un email valide."; $erreur = true; } /* Envoi du mail */ if ( !$erreur ) { mail( $destinataire , $sujet , $message , $headers); echo "Le message a été envoyé."; } ?>
Voici ce que ça donne si ça peut servir à d'autre! j'ai mis mes "if" directement sur les données du formulaire, comme ça ça me permet de garder ma "mise en page" de mon message comme je voulais! Merci!
edit: Sur le même principe je viens de voir que j'avais mis mon sujet "Contact Form" par défaut dans la variable sujet... donc si je ne veux pas que mon sujet soir celui par defaut je devrai écrire
Je vérifie pour le reste et je reviens mettre résolu si tout fonctionne! :) merci!