Formulaire de contact

Bonjour à tous!

J'ai voulu utilisé ce code pour pouvoir envoyer directement des mails depuis mon site:

<?php
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
{
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<button class="yourclasshere" type="submit" name="sendMail">Send Mail</button>
</form>
<?php
}
else /* send the submitted data */
{
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
{
echo "All fields are required, please fill <a href=\"\">the form</a> again.";
}
else{
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
mail("monadressemail", $subject, $message, $from);
echo "Email sent!";
}
}
?>


Cependant, quand je le teste, le message "Cannot POST /index.html" apparait...

Quel est le problème?

Merci d'avance.

--
"Les Hommes ne lâchent jamais l'affaire, sauf quand leurs propres vies sont en danger"

5 réponses

  1. Contributeur
    Bonjour,

    Je n'ai pas détaillé tout ton code, mais à première vue, il y a deux problèmes.

    Il doit se trouver dans un fichier avec l'extension PHP, par exemple contact.php et il faut mettre le nom du fichier dans cette partie du code :

    <form  action="contact.php" method="POST" enctype="multipart/form-data">


    Courage, le bout du tunnel n'est pas loin, il suffit de se retourner.
    1. Le problème étant que je n'ai que ce morceau de code que j'ai posté...

      J'ai également trouvé formulaire: http://www.php-astux.info/script-formulaire-contact.php
      Qui correspond à ce que je voudrais (à savoir un formulaire de contact avec envoi directe), mais je ne sais pas comment le mettre en place...

      "Les Hommes ne lâchent jamais l'affaire, sauf quand leurs propres vies sont en danger"
      1. 1ere chose, il faut t'assurer que la fonction mail() est bien activée sur ton hébergement.
      2. Contributeur
        Le premier script de formulaire de contact devrait fonctionner si tu appliques les modifications que j'ai précisées.

        Il faut aussi ajouter ton adresse mail de destination dans cette partie du code :

        mail("monadressemail", $subject, $message, $from);
        


        Par exemple :

        mail("toto@free.fr", $subject, $message, $from);
        


        Sinon, plutôt que de chercher d'autres scripts, tu peux utiliser un générateur de formulaire de contact :

        https://duckduckgo.com/?q=g%C3%A9n%C3%A9rateur+de+formulaire+php&t=h_&ia=web
    2. Le problème c'est que je n'ai pas trouvé un seul générateur qui ne demande pas de s'inscrire ou qui ne renvoi pas au site directement, et je voudrais éviter cet inconvénient...
      1. Contributeur
        As-tu essayé de faire les modifications sur ton premier script ?
    3. J'ai bien mis mon adresse mail sans problème, mais je n'ai pas compris ce que tu as dit plus haut:

      "Il doit se trouver dans un fichier avec l'extension PHP, par exemple contact.php et il faut mettre le nom du fichier dans cette partie du code :

      <form  action="contact.php" method="POST" enctype="multipart/form-data">
      "

      Je n'ai que le morceau de code que j'ai mis dans mon premier post...
      1. Contributeur
        Bonjour,

        Il faut créer un fichier texte avec l'extension PHP, par exemple, contact.php.
        Si tu es sous Windows, tu peux utiliser le bloc note ou NotePad.

        Ensuite, il faut copier/coller le code à l'intérieur de ce fichier contact.php.

        Voici le code modifié à copier/coller dans le fichier contact.php :

        <?php
        $action=$_REQUEST['action'];
        if ($action=="")    /* afficher le formulaire de contact */
            {
            ?>
            <form  action="contact.php" method="POST" enctype="multipart/form-data">
            <input type="hidden" name="action" value="submit">
            Votre nom:<br>
            <input name="name" type="text" value="" size="30"/><br>
            Votre adresse mail:<br>
            <input name="email" type="text" value="" size="30"/><br>
            Votre message:<br>
            <textarea name="message" rows="7" cols="30"></textarea><br>
            <button class="votreclassici" type="submit" name="sendMail">Envoyer le message</button>
            </form>
            <?php
            } 
        else                /* envoyer les données soumises */
            {
            $name=$_REQUEST['name'];
            $email=$_REQUEST['email'];
            $message=$_REQUEST['message'];
            if (($name=="")||($email=="")||($message==""))
                {
          echo "Veuillez remplir tous les champs<a href=\"\"> du formulaire</a> SVP.";
             }
            else{  
             $from="From: $name<$email>\r\nReturn-path: $email";
                $subject="Message envoyé en utilisant votre formulaire de contact";
          mail("adresse@mail.fr", $subject, $message, $from);
          echo "Message envoyé !";
             }
            }  
        ?>
        


        Tu n'auras plus qu' à mettre ton adresse mail dans cette partie du code :

        mail("adresse@mail.fr", $subject, $message, $from);


        Tu peux ensuite, mettre du HTML autour pour l'intégrer à ton site.
    4. Alors, j'ai bien remplacé tout comme tu m'as dit, le formulaire apparait (première image) et lorsque je clique sur "Envoyer le message", je me retrouve avec des ligne de code (deuxième image)

      1. Contributeur
        Ton site est hébergé chez qui ?
        Peux-tu donner son adresse sans mettre http://