Aide formulaire contact

axbri Messages postés 30 Statut Membre -  
axbri Messages postés 30 Statut Membre -
Bonjour,

j'ai trouvé un tuto. cool pour faire un formulaire de contact https://www.grafikart.fr/tutoriels/formulaire-php-21

Le problème c'est que j'ai du me tromper dans mes codes.

Donc si quelqu'un peut m'aider à trouver mes erreurs...

partie html : http://paste.pocoo.org/show/155930/

Partie php : http://paste.pocoo.org/show/155931/

Merci de votre aide!!!

31 réponses

avion-f16 Messages postés 20367 Date d'inscription   Statut Contributeur Dernière intervention   4 509
 
Dans ton PHP :
<?php
$_POST("nom")
if(isset($_POST) “ isset($_POST['nom']) “ isset($_POST['email']) “ isset($_POST['message'])){
La deuxième ligne ne sert à rien du tout et la seconde est invalide : c'est && et pas “
0
arthezius Messages postés 3756 Statut Membre 475
 
Avant de chercher dans tes codes les éventuelles problèmes, je pense qu'il serai préférable de savoir en un premier temps ce qui ne va pas.
As tu un message d'erreur ?
Le script d'exécuter t-il bien mais tu ne reçoit pas le mail ?

Tu dis avoir un problème mais tu n'expliques rien.
Mettre un code et simplement informer de la présence d'un problème mais sans en dire plus n'est pas la meilleurs manière de recevoir de l'aide.
0
axbri Messages postés 30 Statut Membre
 
Ce qui ne va pas je n'en sais rien.

La page php s'ouvre mais elle est tous le temps vierge.
Alors je pense qu'il y a des erreurs dans mon code qui font que la page reste vierge??

Je ne suis pas expert en code.

La partie html fonctionne, alors le problème vient de la page .php.

Un grand pardon Arthezius, pardon mille fois, je ne ferai plus d'erreur!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0
Impli Messages postés 238 Statut Membre 34
 
if(isset($_POST) “ isset($_POST['nom']) “ isset($_POST['email']) “ isset($_POST['message'])){
   extract($_POST) ;
   if(!empty($nom) “ !empty($email) “ !empty($message)){


devient

if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])){
   extract($_POST) ;
   if(!empty($nom) && !empty($email) && !empty($message)){


avionf-16 t'as donné la réponse...
De plus c'est relativement mal codé.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arthezius Messages postés 3756 Statut Membre 475
 
C'est pas une erreur, c'est une question de bon sens. Tu va chez un réparateur en disant "j'ai un problème avec mon ordi" et en lui donnant simplement en esperant qu'il finisse par repérer la source du problème.
Tu va lui dire: j'ai un problème avec mon ordi. Quand je fais ci, il se passe ça. Là il pourra t'aider.

Maintenant, remplace:
mail($detinataire, $sujet, $message, $entete)

par
mail($destinataire, $sujet, $message, $entete)
0
axbri Messages postés 30 Statut Membre
 
Oui c'est juste...

Donc, j'ai remplacé mail($detinataire, $sujet, $message, $entete)

par mail($destinataire, $sujet, $message, $entete)

Mais il ne se passe toujours rien quand je fais l'envoi d'un message.

La page php s'ouvre toujours vierge.
0
Impli Messages postés 238 Statut Membre 34
 
if (isset($_POST) && !empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['message'])) {
   extract($_POST);
     $message=addslashes($message);
     $message=str_replace("\' "," '", mixed search, mixed replace, mixed subject);
     $destinataire="heureslave@gmail.com";
     $sujet="Formulaire de contact";
     $msg="Une nouvelle question est arrivée \n
     Nom : $nom \n
     Email : $email \n 
     Message : $message";
     $entete= "From: $nom \n Reply-To: $email";
    if  (mail($destinataire, $sujet, $msg, $entete)) {
          echo "Le mail a bien été envoyé.";
      }
     else {
          echo "Le mail n'a pas pu être envoyée !";
       }
   }
else {
     echo "Vous n'avez pas remplis tous les champs.";
}


Essaie avec ça.

PS : Les points virgules sont très importants en fin d'instruction : )
0
axbri Messages postés 30 Statut Membre
 
Je suis désolé mais il ne se passe toujours rien...
0
Impli Messages postés 238 Statut Membre 34
 
Et Là ?
J'ai édité mon message précedent.

PS : Tu as le droit de vérifier l'exactitude de tes variables aussi. Et également de passer ne serait-ce que deux minutes à vérifier ta syntaxe ...
0
arthezius Messages postés 3756 Statut Membre 475
 
Remplace:
mail($destinataire, $sujet, $message, $entete)
     echo "Le mail a bien été envoyé.

Par:
if(mail($detinataire, $sujet, $message, $entete))
     {echo "Le mail a bien été envoyé.}

Comme ça, le texte ne sera affiché que si le mail est véritablement bien parti.

Tu pourrai aussi actualiser ton code sur ton lien ?
0
Impli Messages postés 238 Statut Membre 34
 
La var contenant l'ensemble du message n'est pas $message, mais $msg.

J'ai édité mon post du dessus en fonction de ta remarque.
cf : https://forums.commentcamarche.net/forum/affich-15538322-aide-formulaire-contact#7
0
axbri Messages postés 30 Statut Membre
 
Je vérifie tous ca...

Cependant, ca devrait marché si je l'ouvre avec mon navigateur, pas besoin que ce soit en ligne, si??
0
arthezius Messages postés 3756 Statut Membre 475
 
Non.

Sauf si tu utilises en local un serveur web local avec Apache, PHP/MySQL d'installé et avec le SMTP configuré correctement dans le php.ini du serveur.
0
axbri Messages postés 30 Statut Membre
 
Donc j'ai mis le tout en ligne, c'est mieu!!^^

mais j'ai un message d'erreur (pour la ligne 3)

Parse error: syntax error, unexpected T_IF in /home/site1122/web/www/heureslave/contact.php on line 3

A quoi correspond il?, la je suis perdu! :)

Merci encore pour tout!!
0
Impli Messages postés 238 Statut Membre 34
 
Une erreur de ma part, réessaie en prenant le code du message #7.
0
axbri Messages postés 30 Statut Membre
 
J'ai toujours ce message qui s'affiche : Parse error: syntax error, unexpected T_IF in /home/site1122/web/www/heureslave/contact.php on line 3

Je n'arrive pas à trouver l'erreur...(pour la simple raison que je ne m'y connais pas!! ^^)

Si je comprends bien, l'erreur ce trouve sur cette ligne :

if (isset($_POST) && !empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['message'])) {
0
Impli Messages postés 238 Statut Membre 34
 
Si c'est bien la troisième ligne de ton code, oui. Sinon .. Elle est ailleurs.
0
arthezius Messages postés 3756 Statut Membre 475
 
Je me demande si c'est pas isset($_POST) qu'il n'accepte pas.
if (isset($_POST['nom']) && !empty($_POST['nom']) && isset($_POST['email'])  && !empty($_POST['email']) && isset($_POST['message']) &&  !empty($_POST['message']))
0
avion-f16 Messages postés 20367 Date d'inscription   Statut Contributeur Dernière intervention   4 509
 
$_POST est une variable comme une autre.
Une variable n'est pas forcément du texte (une chaine de caractères, string) mais ça peut aussi être un nombre (int), un objet (avec les classes), une ressource, ...
0
arthezius Messages postés 3756 Statut Membre 475
 
Je dis pas le contraire mais je vois juste pas d'erreur sur cette ligne (en supposant que ce soit bien la ligne 3 du fichier).
Mais bon, il me semblait bien aussi...
0
Impli Messages postés 238 Statut Membre 34
 
Ca sert à rien de faire un isset suivi d'un !empty. Un champ non-vide aura forcément été défini.
0
axbri Messages postés 30 Statut Membre
 
Donc après une ou deux modestes modification :

<?php
$_POST("nom")
if (isset($_POST) && !empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['message'])) {
extract($_POST);
if(!empty($nom) && !empty($email) && !empty($message)){
$message=addslashes($message);
$message=str_replace("\' "," '", mixed search, mixed replace, mixed subject);
$destinataire="heureslave@gmail.com";
$sujet="Formulaire de contact";
$msg="Une nouvelle question est arrivée \n
Nom : $nom \n
Email : $email \n
Message : $message";
$entete= "From: $nom \n Reply-To: $email";
if (mail($destinataire, $sujet, $msg, $entete)) {
echo "Le mail a bien été envoyé.";
}
else {
echo "Le mail n'a pas pu être envoyée !";
}
}
else {
echo "Vous n'avez pas remplis tous les champs.";
}

}
?>

Mais ca ne marche toujours pas.
(A ba oui c'est un métier!!! lol)
0