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 qui marche pas [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 41
    Points : 33
    Points
    33
    Par défaut Formulaire de contact qui marche pas
    Bonjour, je ne comprend pas, j'ai réutiliser un code que j'avais déjà utilisé et qui marchait bien. Je viens de l'intégrer dans un site et la au lieu de m'envoyer un message il m’envoie sur la page d'erreur.

    Voici mes codes :

    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
    le formulaire :
     
     <form action="../PHP/script.php" id="formcontact" name="formulairecontact" method="post" onSubmit="return verification()">
                    <table>
                      <tr>
                        <th scope="row">Nom</th>
                        <td><input name="nom" type="text" size="50" maxlength="50" /></td>
                      </tr>
                      <tr>
                        <th scope="row">Objet</th>
                        <td><input name="objet" type="text" size="50" maxlength="50" /></td>
                      </tr>
                      <tr>
                        <th scope="row">Courriel</th>
                        <td><input name="email" type="text" size="50" maxlength="100" /></td>
                      </tr>
                      <tr>
                        <th scope="row">Message</th>
                        <td><textarea name="message" cols="50" rows="10">&nbsp;</textarea> 
                        	<input name="envoyer" type="submit" value="Envoyer votre message..." /></td>
                      </tr>
                    </table>
     
                </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
    34
    35
    Le JS :
    <script type="text/javascript" language="javascript">
     
    	function verification()
    	{
    	  if(document.formulairecontact.nom.value == "") {
    	  alert("Veuillez entrer votre Nom svp");
    	  document.formulairecontact.nom.focus();
    	  return false;
    	 }
    	  else if(document.formulairecontact.email.value == "") {
    	  alert("Veuillez entrer votre adresse electronique svp");
    	  document.formulairecontact.email.focus();
    	  return false;
    	 }
    	 else if(document.formulairecontact.email.value.indexOf('@') == -1) {
    	  alert("Ce n'est pas une adresse electronique, verifiez la svp");
    	  document.formulairecontact.email.focus();
    	  return false;
    	 }
    	  else if(document.formulairecontact.email.value.indexOf('.') == -1) {
    	  alert("Ce n'est pas une adresse electronique, verifiez la svp");
    	  document.formulairecontact.email.focus();
    	  return false;
    	 }
    	 else if(document.formulairecontact.message.value == "") {
    	  alert("Veuillez entrer un message svp");
    	  document.formulairecontact.message.focus();
    	  return false;
    	 }
    	  else return true;
     
    	}
     
    </script>
    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
    et enfin le php :
    <?php
     
    $nom = $_POST["nom"];
    $email = $_POST["email"];
    $objet = $_POST["objet"];
    $message = "Nom : ".$nom.". Message : ".$_POST["message"];
    $adresse="monmail";
     
     
    if (@mail($adresse,$objet,$message,$email))
    {
    header("Location: ../Pages/reponsecontact.html");
    }
    else
    {
    header("Location: ../Pages/erreurcontact.html");
    }
     
    ?>
    Merci d'avance...

  2. #2
    Membre régulier Avatar de Pierrot2Mars
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2010
    Messages : 79
    Points : 108
    Points
    108
    Par défaut
    Même si je ne comprends pourquoi utiliser Javascript pour faire ces vérifs...
    Essaye d'ajouter exit(); après tes header();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (@mail($adresse,$objet,$message,$email))
    {
    header("Location: ../Pages/reponsecontact.html");
    exit();
    }
    else
    {
    header("Location: ../Pages/erreurcontact.html");
    exit();
    }

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Nan ça ne marche pas quand même mais merci de ta réponse.

    En fait pourquoi le javascript parce que je débute donc je trouvai ça plus simple de passer par le javascript et vérifier tout avant d'envoyer sur le PHP. Après je me doute que ça doit pas être la meilleure solution.

  4. #4
    Membre régulier Avatar de Pierrot2Mars
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2010
    Messages : 79
    Points : 108
    Points
    108
    Par défaut
    Erreur de paramètres dans la fonction mail().
    Si tu renseigne le 4e paramètre (headers), il faut que ce soit de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // clé aléatoire de limite
    $boundary = md5(uniqid(microtime(), TRUE));
     
    // Headers
    $headers = "From: Ton site <contact@tonsite.fr>\r\n";
    $headers .= "Reply-To: ".$_POST['email']."\r\n";
    $headers .= "Mime-Version: 1.0\r\n";
    $headers .= "Content-Type: multipart/mixed;boundary=".$boundary."\r\n";
     
    // Envoi du mail
    @mail($adresse,$objet,$message,$headers)
    Doc mail() : http://php.net/manual/fr/function.mail.php

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    J'ai modifié ça mais ça marche toujours pas

    Je comprend pas j'ai tout bien comme sur php.net...

  6. #6
    Membre régulier Avatar de Pierrot2Mars
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2010
    Messages : 79
    Points : 108
    Points
    108
    Par défaut
    Rassure moi ... tu as bien modifié ça :
    pour mettre ta véritable adresse ?

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Looool la question est légitime mais oui, j'suis pas débutant à ce point ^^

  8. #8
    Membre régulier Avatar de Pierrot2Mars
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2010
    Messages : 79
    Points : 108
    Points
    108
    Par défaut
    Alors je peux plus t'aider.
    Testé de mon côté, ça fonctionne.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Pas grave merci ! C'est ptètre mon serveur qui merde !

  10. #10
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Retirez le @ dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (@mail($adresse,$objet,$message,$email))
    Et évitez simplement d'utiliser @... Il cache les erreurs, or il vaut mieux les corriger plutôt que de les cacher...

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Ouai en fait le '@' a la base je l'avais pas mis, c'est en farfouillant un peu partout que j'ai vu qu'il y était alors j'ai testé avec mais ça marchait pas mieux. Du coup entre temps je l'ai re-enlevé !

    Mais je pense que ça doit venir de mon serveur !

  12. #12
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Le @ empêche l'affichage des erreurs... Donc faut éviter...

    Revenons au problème :
    La fonction mail() doit être écrite comme ça :
    bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
    $to = l'adresse à laquelle tu veux envoyer le mail.
    $subject = l'objet du mail
    $message = le message du mail
    $headers = header du mail avec un format bien défini.

    donc mail($adresse,$objet,$message,$email) ne fonctionnera pas car $email n'est pas un header de mail.

    Comme l'a déjà dit Pierrot2Mars mais tu ne l'as pas lu/compris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $nom = $_POST["nom"];
    $email = $_POST["email"];
    $objet = $_POST["objet"];
    $message = "Nom : ".$nom.". Message : ".$_POST["message"];
    $adresse="mail@example.com";
    $headers = "From: Ton site <".$adresse.">\r\n";
    $headers .= "Reply-To: ".$adresse;
    if (mail($adresse,$objet,$message,$headers)){ // sans @ et avec headers
        header("Location: ../Pages/reponsecontact.html");
        exit;
    }else{
        header("Location: ../Pages/erreurcontact.html");
        exit;
    }

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Si si je l'avais lu/compris et exécuté d'ailleurs ! Cela ne marchais pas non plus !

    Mais j'ai réussi c'était bien mon serveur qui ne fonctionnait pas correctement !

    Merci de vos réponses en tout cas !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. J'ai un traitement de formulaire qui marche pas
    Par japhettchabao dans le forum Langage
    Réponses: 7
    Dernier message: 18/11/2014, 16h09
  2. [debutant] formulaire qui marche pas
    Par pimousse_cerise dans le forum JSF
    Réponses: 10
    Dernier message: 21/12/2006, 15h52
  3. une comparaison qui marche pas.
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/02/2004, 15h59
  4. [LG]Split qui marche pas
    Par macluvitch dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2003, 18h19
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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