Page 1 sur 1

php et formulaire de contact

Posté : 06 févr. 2014, 08:17
par pym_74
bonjour,
j'ai un problème avec ma page contact.
j'ai récupéré une page mail.php, que j'ai réussi à décortiquer,
le problème c'est le "if et else",

1) ou ma page part, même avec des données vides, (il me met sur la page merci.html), je reçois toutes les données sur mon mail.
2) ou ma page ne part pas, et elle m'affiche la page pas_parti.html,
cela veut dire qu'il va jusqu'à la page mail.php mais après ça coince,

merci, je dois rendre mon site dans 1 semaine pour mon diplôme

voici mon code quand la page ne part pas:
<?php

$to = '[email protected]'; // mon email, l'adresse ou va arriver le mail envoyé via le formulaire

$prenom = $_POST['prenom']; // Reprise du champ From input name="from"
$nom = $_POST['nom']; // Reprise du champ Msg input name="msg"
$email = $_POST['email']; // reprise du champ input name="subject"
$message = $_POST['message']; // reprise du champ input name="subject"


//To send HTML mail, the Content-type header must be set:

// le $header est une variable qui contient les entêtes obligatoires pour envoyer un email 
$headers='MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html;charset=iso-8859-1' . "\r\n";
$headers .= 'From: Pierre-Yves MINO <[email protected]>' . "\r\n"; // FROM : l'adresse mail utilisé pour envoyer l'email

// la variable $bodys contient du texte et des champs provenant des variables (les variables commencent par $
$bodys = "From : $from <br>";
$bodys .= "$prenom <br>";
$bodys .= "$nom <br>";
$bodys .= "Email : $email <br>";
$bodys .= "Message : $message <br>";

/* 

la fonction PHP mail requiert comme paramètres des variables suivantes : 
recipient = destinataire du mail ici nous avons pris le $to que nous avons créé en ligne 3
subject = sujet du mail : ici la variable $subject qui est reprise du $_POST['subject'] du formulaire 
content = contenu du message ici la variable $bodys que nous avons rempli juste au dessus
headers = les entêtes de mail nécessaires à l'envoi pour que le serveur mail ne rejette pas l'envoi du mail on les a remplies 
dans la varible $headers ci-dessus. 
*/

// test (if = si) . si le mail s'envoie bien, on redirige sur une page, et si il n'est pas parti.. on envoie sur une autre page.
if (mail($to, $prenom, $nom, $email, $message, $bodys, $headers)==true)

{ header('Location: /merci.html');} // renvoi à une page différente si le mail est bien parti (modifier sur votre page de merci
else
{ header('Location: /pas_parti.html');} //attention, redirige sur une page qui informe l'utilisateur que le mail n'est pas parti


?>

mon code Html:
<form id="form" action="mail.php" method="post">
    		<h4>Contact</h4>     
        
        	<h5>Prénom</h5><input type="text"  class="form" name="prenom" placeholder="Prénom" />
           <h5>Nom</h5><input type="text" class="form" name="nom" placeholder="Nom" />
           <h5>Email</h5><input type="text" class="form" name="email" placeholder="Email" />
           <h5>Message</h5><textarea type="textarea"  class="form" name="message" placeholder="Message" cols="35" rows="5"></textarea>
           
      
           
           <input id="Button1" type="button" value="Envoyer" onClick="document.forms['form'].submit()" />
           
        </form>

Re: php et formulaire de contact

Posté : 06 févr. 2014, 09:25
par xTG
Tu es donc en fin de cursus ? Mais qu'as-tu donc appris ?
Bon allez... Je fais une passe rapide de ce qu'il y a à revoir :
<input id="Button1" type="button" value="Envoyer" onClick="document.forms['form'].submit()" />
Inutile le javascript, c'est l'équivalent d'un bouton de type="submit" sauf que si on désactive le JS ton formulaire ne fonctionne plus dans le cas actuel.
$prenom = $_POST['prenom'];
Toujours vérifier les variables avant de les utiliser !
Que se passe-t-il si on appelle la page mail.php sans passer par le formulaire ?
Tu as les fonctions isset() ou empty() pour faire des tests minimum.

Re: php et formulaire de contact

Posté : 06 févr. 2014, 09:40
par pym_74
ok merci,
en fait une a formation que sur le html et le css (donc un peu limité)
le php et javasript viennent après, donc je suis dans l'essai,

quand on lance la page mail.php, j'ai la page "Votre message n'est pas parti, merci" que j'avais paramètre
http://www.pyroma4.myhostpoint.ch/contact.html

ciao bonne journée

Re: php et formulaire de contact

Posté : 06 févr. 2014, 10:36
par xTG
Commences par mettre en commentaire tes redirections et les remplacer par un simple affichage de debug.
Affiches les variables importantes et postes ton formulaire, tu auras plus d'informations qu'à chercher dans le vide. ;)

Concernant tes essais c'est bien de faire plus que ce qu'il t'est demandé.
Mais saches que l'envoi du formulaire par javascript tel que tu le fais ne pourras que t'être reproché.
Pour être approuvé il faudrait au minimum que tu fasses une détection des champs vides en javascript afin d'empêcher l'envoi du formulaire.

Re: php et formulaire de contact

Posté : 06 févr. 2014, 11:30
par pym_74
merci ça va jouer je pense,

ciao bonne journée

:lol: :lol: