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 : erreur aprés soumission


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut Formulaire de contact : erreur aprés soumission
    Bonjour,
    j'ai ce code pour mon formulaire de contact
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    <?php
    $email_webmaster = "xxxxx@gmail.com";
    if (isset($_POST["envoyer"])){
            $etat = "erreur";
            if (isset($_POST["email_expediteur"])) {
                     $_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
            }
            if (isset($_POST["titre"])) {
                     $_POST["titre"]=trim(stripslashes($_POST["titre"]));
            }
            if (isset($_POST["message"])) {
                     $_POST["message"]=trim(stripslashes($_POST["message"]));
            }
            if (empty($_POST["email_expediteur"])) {
                     $erreur="Saisissez votre adresse email...";
            }
            elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,3}$",$_POST["email_expediteur"])){
                     $erreur="Votre adresse e-mail n'est pas valide...";
            }
            elseif (empty($_POST["message"])) {
                     $erreur="Saisissez un message...";
            }
            else {
                     $etat="ok";
            }
    }
    else {
               $etat="attente";
    }
     
    if ($etat!="ok"){
             if ($etat=="erreur"){
                             echo "<p><strong>".$erreur."</strong></p>n";
             }
    ?>
            <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
     
              <p>
              	<label for="email_expediteur">          Votre adresse e-mail (obligatoire):</label>
              	<br />
              		<input name="email_expediteur" type="text" class="minuscule" id="email_expediteur" value="<?php
            if (!empty($_POST["email_expediteur"])) {
                    echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
            }
            ?>" size="40" />
              	</p>
              <p>
              	<label for="titre">Titre de message (facultatif):</label>
              	<br />
              	<input type="text" size="40" name="titre" id="titre" value="<?php
            if (!empty($_POST["titre"])) {
                    echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
            }
            ?>" />
              	</p>
              <p>
              	<label for="message">Message (obligatoire):</label>
              	<br />
              	<textarea name="message" id="message" cols="30" rows="7"><?php
            if (isset($_POST["message"])) {
                    echo htmlspecialchars($_POST["message"],ENT_QUOTES);
            }
            ?>
                </textarea>
              	</p>
              <br />
           <p>				<input value="Envoyer" name="envoyer" type="submit" style="background: #444; border:none; color:#FFF; overflow: visible; padding: 5px 8px 6px; cursor:pointer; margin-top: 1em; font-size:1.1em" />
            </p>
            </form>
    <?php
    }
    else {
            $entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">n";
            $entete .= "MIME-Version: 1.0";
            if (@mail($email_webmaster,$_POST["titre"],$_POST["message"],$entete)){
                    echo "Votre message a été envoyé.<br />n";
                    echo '<a href="'.$_SERVER["PHP_SELF"].'">Envoyer un autre message...</a>n';
            }
            else {
                    echo "Un problème s'est produit lors de l'envoi du message.n";
                    echo '<a href="'.$_SERVER["PHP_SELF"].'">Réessayez...</a>n';
            }
    }
    ?>
    Mais lorsque j'ai envoyé, le message suivant m'est retourné:

    Un problème s'est produit lors de l'envoi du message.nRéessayez...
    Je n'arrive pas à trouver d'ou vient l'erreur de syntaxe.

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Pourquoi des n dans le message ?
    et vire le @ pour afficher les erreurs...

    Et ta gestion des erreurs est bizarre, utilise un tableau pour les erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // Tableau des erreurs de saisie
    $errors = array();
    $errors[] = 'message d'erreur';
    $errors[] = 'message d'erreur 2';
    ...
    et utilise plutôt phpmailer, je ne m'en passe plus personnellement, c'est très simple d'utilisation et je n'ai jamais aucune erreur.

  3. #3
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 496
    Par défaut
    n'oublie pas de parametrer ton smtp aussi
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  4. #4
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Citation Envoyé par blueice Voir le message
    Pourquoi des n dans le message ?
    Ben comme c'est un code que j'ai honteusement récupéré, je n'en sais rien

    Citation Envoyé par blueice Voir le message
    et vire le @ pour afficher les erreurs...
    Je ne vois pas de que @ tu parles, je n'en vois qu'un seul.

    Citation Envoyé par blueice Voir le message
    Et ta gestion des erreurs est bizarre, utilise un tableau pour les erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // Tableau des erreurs de saisie
    $errors = array();
    $errors[] = 'message d'erreur';
    $errors[] = 'message d'erreur 2';
    ...
    Ok merci mais comme je suis un grand débutant en PHP, même ça c'est compliqué pour moi

    Citation Envoyé par blueice Voir le message
    et utilise plutôt phpmailer, je ne m'en passe plus personnellement, c'est très simple d'utilisation et je n'ai jamais aucune erreur.
    Justement je cherchais un bon système de formulaire de contact (après en avoir utilisé un assez basique). Est ce qu'il y a besoin de connaître le PHP pour l'utiliser? Merci du conseil.

    n'oublie pas de parametrer ton smtp aussi
    Qu'est ce que vient faire le SMTP là-dedans? (on passe pas par un client mail pour envoyé le message)

  5. #5
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 496
    Par défaut
    Citation Envoyé par Erwan31 Voir le message
    Je ne vois pas de que @ tu parles, je n'en vois qu'un seul.
    => c'est justement celui la qu'il faut virer
    Citation Envoyé par Erwan31 Voir le message
    Qu'est ce que vient faire le SMTP là-dedans?
    => c'etait a tout hasard... comme souvent, les gens l'oublient...
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  6. #6
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Citation Envoyé par Doksuri Voir le message
    => c'est justement celui la qu'il faut virer
    si je supprime le @ de if (@mail ça génère une erreur

    Citation Envoyé par Doksuri Voir le message
    => c'etait a tout hasard... comme souvent, les gens l'oublient...
    Ya un truc qui m'échappe là, tu peux expliquer un peu?

    PS: je vais regarder la solution que me conseil Blueice.

  7. #7
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Citation Envoyé par Erwan31 Voir le message
    si je supprime le @ de if (@mail ça génère une erreur
    c'est justement pour ça qu'on te demande le supprimer : le @ inhibe les messages d'erreur, or c'est ce dont nous avons besoin pour résoudre le problème.
    Donc, tu vires le @ et tu donnes le message d'erreur que tu récupères...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. renvoi sur une page après formulaire de contact
    Par watcha16 dans le forum Langage
    Réponses: 6
    Dernier message: 09/07/2008, 14h24
  2. Erreur sur mon formulaire de contact
    Par Angeldu74 dans le forum Langage
    Réponses: 4
    Dernier message: 13/01/2008, 00h06
  3. Réponses: 12
    Dernier message: 27/09/2007, 08h33
  4. Réponses: 3
    Dernier message: 09/04/2007, 15h29
  5. Erreur de soumission d'un formulaire
    Par sagitarium dans le forum Langage
    Réponses: 1
    Dernier message: 14/05/2006, 12h21

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