IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire de contact PHP


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Formulaire de contact PHP
    Bonjour,
    Afin d'intégrer un formulaire de contact sur mon site web, j'ai suivi un tuto sur le sujet : https://www.tutoriels-video.fr/formu...ontact-en-php/
    Toutefois, je n'obtiens pas le même résultat; le message "veuillez remplir tous les champs" apparaît déjà au chargement de la page, et lorsque je remplis tout et que j'envois, le message 'votre message a été envoyé" n’apparaît également pas.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <form method="post" action="">
     
                    <label for="prenom"></label>
                    <input type="text" id="prenom" placeholder="Votre nom" value="<?php if(isset($_POST['prenom'])) echo htmlspecialchars($_POST['prenom']); ?>" /><br/>
     
     
                     <label for="email"></label>
                     <input type="email" id="email" placeholder="Votre e-mail" value="<?php if(isset($_POST['email'])) echo htmlspecialchars($_POST['email']); ?>" /><br/>
     
                <div class="clear"></div>
                <div>   
                    <label for="sujet"></label>
                    <input type="text" id="sujet" placeholder="Sujet" value="<?php if(isset($_POST['sujet'])) echo htmlspecialchars($_POST['sujet']); ?>" /><br/>
                </div>
                <div>
                    <label for="message"></label>
                    <textarea id="message" placeholder="Votre message"><?php if(isset($_POST['message'])) echo htmlspecialchars($_POST['message']); ?></textarea><br/>
                </div>
                <div class="button">
                    <button type="submit" id="envoyer">Envoyer</button><br/><span style="<a>color:red</a>;"><?php echo $erreur; ?></span><span style="<a>color:green</a>"><?php echo $info;?></span>
                    </span>
                </div>
            </form>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
    $erreur = NULL;
    $info = NULL;
     
    if(!empty($_POST['prenom']) AND !empty($_POST['email']) AND !empty($_POST['message'])){
        extract($_POST);
        if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email)){
     
        $prenom = htmlspecialchars(addslashes($prenom));
        $email = htmlspecialchars(addslashes($email));
        $sujet = htmlspecialchars(addslashes($sujet));
        $message = htmlspecialchars(addslashes($message));
        $destinataire = "benoit.jacquelin@hotmail.com";
        $objet = "Formulaire de contact";
        $entete = 'From : '.$email.'';
        $message = 'Prenom : '.$prenom.' '."\n".' Sujet : '.$sujet.'  '."\n".' Message : '.$message.'';
     
        mail($destinataire, $objet, $message, $entete);
     
        $info = "Votre email à été envoyé";
     
        unset($_POST, $message, $prenom, $email, $sujet);
     
        }
        else{
        $erreur="Adresse email invalide";
        }
     
    }
    else{
        $erreur = "Veuillez remplir tous les champs";
    }
    ?>
    Si quelqu'un aurait une solution, je suis preneur ^^" merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il manque l'attribut "name" de tes input.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Ah oui effectivement je viens de m'en rendre compte xD Merci ! Mais malgré les changements, le message "veuillez remplir tous les champs" apparaît encore dès le chargement de la page. Toutefois, il y a eu du changements quant au formulaire : lorsque que j'envois celui-ci, le message "votre message a bien été envoyé" s'affiche, mais une erreur apparaît également, en haut de la page, : Warning: mail(): SMTP server response: 501 5.1.0 Emetteur invalide. Invalid Sender. OFR204_405 [405]

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    L'adresse FROM ça doit être ton adresse.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Tu est sûr ? Je pense plutôt que ça doit être l'adresse de expéditeur, d'où le $email. Du fait qu'il s'agit du mail que moi je vais recevoir, le $email me survira à connaitre l'email de l’expéditeur du message.
    Pour le message "veuillez remplir tous les champs", je n'ai toujours pas trouvé de solutions, il semblerait que $erreur/$info = NULL n'ai aucune influence sur le code ><

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton serveur n'accepte pas des adresses externes en FROM, c'est ce que dis le message.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    J'ai cherché un peu, et il semblerait que que cette erreur est récurrente lorsque l'on test en local (sur wamp server), je pense que ça ira mieux lorsque je le mettrait en ligne.
    Pour l'histoire du message, as-tu des idées ? ^^"

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Les serveurs SMTP des hébergements n'acceptent souvent pas non plus des adresses FROM externes.
    Enfin c'est à voir avec ton hébergement.

    Pour le message, il faut tester si le formulaire a été envoyé.
    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['name_de_ton_submit'])) {

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    J'ai englobé tout mon script php dans la condition que tu m'a conseillée, mais il ne reconnait plus erreur et info.

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Dans ce cas, il faut englober tout le script SAUF l'initialisation de $erreur et $info à NULL.

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Ah oui effectivement, ça a fonctionné ! Le message "veuillez remplir tous les champs" ne s'affiche plus au début J'ai une autre petite question, y'a-t-il un moyen que lorsque le message a été envoyé, ou que des champs sont manquants, la page reste sur la section contact au lieu qu'elle retourne au début ? Ca éviterai que utilisateur ai besoin de scroll afin de savoir si il a bien envoyé le formulaire et tout ^^

Discussions similaires

  1. FORMULAIRE de CONTACT PHP
    Par chidap dans le forum Langage
    Réponses: 7
    Dernier message: 31/05/2012, 18h08
  2. formulaire de contact PHP
    Par toinformatique dans le forum Langage
    Réponses: 2
    Dernier message: 28/05/2012, 08h13
  3. formulaire de contact php
    Par paikan06 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/05/2012, 10h42
  4. Formulaire de contact PHP
    Par xerel dans le forum Langage
    Réponses: 2
    Dernier message: 23/07/2010, 16h31
  5. [Forum] Formulaire de contact php
    Par itmak dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 11/05/2008, 19h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo