PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 05-02-2012 09:58:46

zinat
Membre
Inscription : 05-02-2012
Messages : 4

echec d'envoi d'un formulaire de contact

bonjour à tous le monde,
je suis en train de créer un formulaire de contact en PHP ,je veux recevoir les informations de l'internaute et son message sur mon email ,ça fait des heures que je me bat pour que le code marche  ,mais en vain ,à présent l’orque j'envoie le formulaire il me donne:

"Vous devez d'abord <a href=\"formulaire.html\">envoyer le formulaire</a>.";
comme si le traitement ne se fait pas sad
voici le code de la page send.php

<?php
  /*
    ********************************************************************************************
    CONFIGURATION
    ********************************************************************************************
  */

  // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
  $destinataire = 'zinat@nomdomaine.info';

  // copie ? (envoie une copie au visiteur)
  $copie = 'oui'; // 'oui' ou 'non'

  // Messages de confirmation du mail
  $message_envoye = "Votre message nous est bien parvenu !";
  $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

  // Messages d'erreur du formulaire
  $message_erreur_formulaire = "Vous devez d'abord <a href=\"formulaire.html\">envoyer le formulaire</a>.";
  $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

  /*
    ********************************************************************************************
    FIN DE LA CONFIGURATION
    ********************************************************************************************
  */

  // on teste si le formulaire a été soumis
  if (!isset($_POST['envoi']))
  {
    // formulaire non envoyé
    echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
  }
  else
  {
    /*
     * cette fonction sert à nettoyer et enregistrer un texte
     */

    function Rec($text)
    {
      $text = trim($text); // delete white spaces after & before text
      if (1 === get_magic_quotes_gpc())
      {
        $stripslashes = create_function('$txt', 'return stripslashes($txt);');
      }
      else
      {
        $stripslashes = create_function('$txt', 'return $txt;');
      }

      // magic quotes ?
      $text = $stripslashes($text);
      $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
      $text = nl2br($text);
      return $text;
    };

    /*
     * Cette fonction sert à vérifier la syntaxe d'un email
     */

    function IsEmail($email)
    {
      $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
      return (eregi($pattern,$email)) ? true : false;
    };

    // formulaire envoyé, on récupère tous les champs.
$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
$objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

    // On va vérifier les variables et l'email ...

    $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré

    if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
    {
      // les 4 variables sont remplies, on génère puis envoie le mail
      $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

      // envoyer une copie au visiteur ?
      if ($copie == 'oui')
      {
        $cible = $destinataire.','.$email;
      }
      else
      {
        $cible = $destinataire;
      };

      // Remplacement de certains caractères spéciaux
      $message = str_replace("'","'",$message);
      $message = str_replace("’","'",$message);
      $message = str_replace(""",'"',$message);
      $message = str_replace('
<br>','',$message);
      $message = str_replace('
<br />','',$message);
      $message = str_replace("<","<",$message);
      $message = str_replace(">",">",$message);
      $message = str_replace("&","&",$message);

      // Envoi du mail
      if (mail($cible, $objet, $message, $headers))
      {
        echo '<p>'.$message_envoye.'</p>'."\n";
      }
      else
      {
        echo '
<p>'.$message_non_envoye.'</p>'."\n";
      };
    }
    else
    {
      // une des 3 variables (ou plus) est vide ...
      echo '
<p>'.$message_formulaire_invalide.' <a href="formulaire.html">Retour au formulaire</a></p>'."\n";
    };
  }; // fin du if (!isset($_POST['
envoi']))
?>

dans la page formulaire.html j'appelle la page send.php avec
<form action="send.php" method="post">
...l'élaboration du formulaire.


aidez-moi s'il vous plaît trouvez-moi l’erreur ,je sèche là sad


Hors ligne

#2 05-02-2012 20:02:20

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 620
Site Web

Re : echec d'envoi d'un formulaire de contact

Bonjour,

En php, on n'inclue pas la déclaration d'une fonction dans une instruction if__then__else.

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 09-02-2012 17:33:33

lima2010
Membre
Inscription : 09-02-2012
Messages : 2

Re : echec d'envoi d'un formulaire de contact

Bonjour,

moi aussi j'ai la même problème , est ce que personne n'a de solution sad

Hors ligne

#4 10-02-2012 13:20:19

lima2010
Membre
Inscription : 09-02-2012
Messages : 2

Re : echec d'envoi d'un formulaire de contact

pas d'aide !!!!!!!!

Hors ligne

#5 10-02-2012 14:06:47

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : echec d'envoi d'un formulaire de contact

Salut,

lima2010 a écrit :

moi aussi j'ai la même problème , est ce que personne n'a de solution

Quel problème ? Même code ?


erreur :
"Vous devez d'abord <a href=\"formulaire.html\">envoyer le formulaire</a>.";
 

Trouve dans quel cas s'affiche cette erreur...

Ensuite :

Jc a écrit :

En php, on n'inclue pas la déclaration d'une fonction dans une instruction if__then__else.

A prendre en compte !!

Tout ceci s'appelle, "débugger" mais encore faut-il comprendre un minimum ce que l'on fait.

A++


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#6 11-02-2012 20:31:55

romumu77
Membre
Inscription : 01-01-2012
Messages : 12

Re : echec d'envoi d'un formulaire de contact

Si vous le souhaiter je peut vous fournir un formulaire de contact modifiable sans souci et qui marche wink ICI

Dernière modification par romumu77 (11-02-2012 20:42:58)

Hors ligne

#7 12-02-2012 11:39:54

zinat
Membre
Inscription : 05-02-2012
Messages : 4

Re : echec d'envoi d'un formulaire de contact

romumu77 a écrit :

Si vous le souhaiter je peut vous fournir un formulaire de contact modifiable sans souci et qui marche wink ICI

merci  beaucoup romumu77 pour votre aide ,je vais essayer votre code  et je vous tiens au courant du résulta smile

Hors ligne

#8 12-02-2012 12:56:03

romumu77
Membre
Inscription : 01-01-2012
Messages : 12

Re : echec d'envoi d'un formulaire de contact

pas de souci wink

Hors ligne

#9 15-02-2012 12:52:00

zinat
Membre
Inscription : 05-02-2012
Messages : 4

Re : echec d'envoi d'un formulaire de contact

Bonjour omumu77 smile

le formulaire fonctionne à merveille sauf que j'ai pensé à rajouter  un champs " site web  "dont le remplissage  n'est pas obligatoire et oups ça plante et l'envoie ne se fait plus sad

voilà ce que j'ai  rajouter au niveau du send.php :

//User info (DO NOT EDIT!)
      $name = stripslashes($_POST['name']); //sender's name
    [b]  $url = stripslashes($_POST['url']); // sender's url[/b]
      $email = stripslashes($_POST['email']); //sender's email
et pour l'envoie :

      $msg  = "From : $name \r\n";  //add sender's name to the message
    [b]  $msg .= "site web : $url \r\n"; // add sender's url to the message[/b]
      $msg .= "e-Mail : $email \r\n"; //add sender's website to the message
      $msg .= "$subject \r\n\n"; //add subject to the message (optional! It will be displayed in the header anyway)
      $msg .= "---Message--- \r\n\n".stripslashes($_POST['message'])."\r\n\n";  //the message itself

manque t-il autre chose à changer ?
merci d'avance  pour l'aide ,c'est très urgent neutral

Dernière modification par zinat (15-02-2012 13:09:01)

Hors ligne

#10 16-02-2012 09:04:07

romumu77
Membre
Inscription : 01-01-2012
Messages : 12

Re : echec d'envoi d'un formulaire de contact

Et si tu supprime t'es balise [b] ?

Hors ligne

#11 16-02-2012 11:07:44

zinat
Membre
Inscription : 05-02-2012
Messages : 4

Re : echec d'envoi d'un formulaire de contact

romumu77 a écrit :

Et si tu supprime t'es balise [b] ?

je l'ai mis juste pour l’agrandir ici mais pas dans le code.

Hors ligne

#12 16-02-2012 13:53:19

romumu77
Membre
Inscription : 01-01-2012
Messages : 12

Re : echec d'envoi d'un formulaire de contact

A-tu modifier le fichier form_c dans le dossier javascript ?

Dernière modification par romumu77 (16-02-2012 13:53:34)

Hors ligne

Pied de page des forums