Pb formulaire de contact

theca -  
 theca -
J'ai creer un formulaire de contact pour mon site et il me fait toujours erreur.
Voila j'ai une erreur et j'arrive pas a la resoudre. Je vous poste les codes du html et du php ci dessous:

PHP:

<?php

$adresse = "***@***";
$site = "www.crbc.fr";

$TO = $adresse;

$head = "From: ".$adresse."\n";
$head .= "X-Sender: <".$adresse.">\n";
$head .= "X-Mailer: PHP\n";
$head .= "Return-Path: <".$adresse.">\n";
$head .= "Content-Type: text/plain; charset=iso-8859-1\n";
$sujet = "Formulaire de contact";

$informations = "
Nom: ".$_POST['nom']."\r\n
Email du formulaire: ".$_POST['mail']." \r\n
Sujet du formulaire: ".$_POST['objet']."\r\n
Message: ".$_POST['message']."\r\n
";

$res = mail($TO, $sujet ,$informations, $head);

if (true == $res) {
Header("Location: http://".$site."/page/formail2_ok.html" );
} else {
Header("Location: http://".$site."/page/formail2_pasok.html" );
}
?>

HTML :

<form method="post" action="formmail2.php" id="contact" target="_blank" >
<input type="hidden" name="subject" value="formmail">
<input class="whform " type="text" name="nom" id="nom" placeholder="Nom Prénom" required />
<input class="whform " type="email" name="mail" id="mail" placeholder="E-mail" required />
<input class="whform " type="text" name="objet" id="sujet" placeholder="Sujet"required />
<textarea name="message" id="message" placeholder="Taper votre message" required /></textarea>
<input type="submit" id="envoyer" value="Envoyer" />
</form>

Si quelqu'un sait ce qui cloche merci d'avance pour son aide.

3 réponses

GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
Bonjour,

Tout d'abord, pour le warning occasionné, prends cette ligne de code:
$head .= "Content-Type: text/plain; charset=iso-8859-1\n"; 
et mets-la avant les autres variables $head.

Ensuite, je ne comprends pas trop ce que tu désires faire avec ces lignes de code:
$res = mail($TO, $sujet ,$informations, $head); 
if (true == $res) {
Header("Location: http://".$site."/page/formail2_ok.html" );
} else {
Header("Location: http://".$site."/page/formail2_pasok.html" );
}

Si c'est pour savoir si le courriel s'est bien envoyé, je ne crois pas que ce soit la bonne façon de faire.
Tout d'abord, je remplacerais ces lignes par seulement cela:
mail($TO, $sujet ,$informations, $head); 

Puis, je vérifierais les input du formulaire AVANT l'envoi du courriel. Ainsi, s'il y a bien présence de tous les éléments requis, la fonction mail() pourra se faire.

Mais avec les seuls changements que je t'ai proposés, tout fonctionne parfaitement. Je l'ai testé sur un serveur et j'ai bien reçu un courriel.
0
theca
 
ok merci je vais faire les changement que tu m'as dit sinon je pense que ca vient de l'herbergeur qui est LWS.

Pour la partie que tu ne comprend c pour prevenir l'utilisateur si son mail a bien étéi envoyé ou pas.

merci pour ton aide je te tien au courant.
0
theca
 
Moi ca ne marche toujours pas. Je crois que c'est mon hebergeur.
0
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
Quel est le message d'erreur que tu reçois?
0
theca
 
je sais pas je reçois pas de message d'erreur j'ai une page blanche. c tout. Et la page blache c'est l'url de mon php.
0
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
Dans ce cas, le tout s'est bien déroulé. As-tu bien mis ton adresse courriel sur cette ligne:
$adresse = "***@***";
0
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
J'ai utilisé ce code sur mon serveur aussi, j'arrivais sur ta page erreur, mais je recevais quand même le courriel.

Fais cela à la place. Je l'ai testé et ça marche.

$res = mail($TO, $sujet ,$informations, $head);

if ((isset($res)) && ($res === TRUE)){ echo "good"; }
else { echo "no good"; }
0
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
En passant, tu peux remettre tes header(location: .... ) à la place de mes echo "good" ou "no good" là, c'était juste pour faire vite.

Tu verrais donc:

$res = mail($TO, $sujet ,$informations, $head);

if ((isset($res)) && ($res === TRUE)){ Header("Location: http://".$site."/page/formail2_ok.html" ); }
else { Header("Location: http://".$site."/page/formail2_pasok.html" ); }
0
theca
 
je teste et je te tien au courant
0
theca
 
ça me fait no good et toujours pas de mail. C'est mon hebergeur c'est sur. je vois pas d'autre explication.
0
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
Si tu tombes encore sur ta page d'erreur, alors, c'est peut-être parce que ton hébergeur bloque la fonction mail(). Dans ce cas, il faudrait que tu communiques avec le support technique pour voir s'il n'y a pas une alternative.
0
theca
 
Ouai je vais essayais de les contacter.

merci pour ton aide.
0