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: message d'erreur


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut Formulaire de contact: message d'erreur
    Bonjour à tous,

    Je suis débutant en informatique

    J’ai crée un site web avec free contenant 6 pages :
    - Accueil, présentation … : 5 pages avec l’extension .html
    - Formulaire de contact (tutoriel developpez.com copier/coller): 1 page avec l’extension .php

    Dans ma page perso FREE j'ai "Activer votre base de données MySQL"

    Résultat :
    - les 5 pages avec l’extension .html marchent bien
    - le formulaire de contact avec l’extension .php ne marche pas :

    Message d'erreur pour le formulaire de contact:
    - En web local le message d’erreur est le suivant : Parse error: parse error in C:\Program Files (x86)\EasyPHP6.0dev\www\10Mecontacter.php on line 5
    - Sur Internet le message d’erreur est le suivant : Parse error: syntax error, unexpected '<' in /mnt/162/sdb/5/5/oz.kaya/10Mecontacter.php on line 5

    Je n'y comprends rien. Pouvez vous m’aider ?


    Ci joint le code de la page 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
    <?php
     
    /*formulaire HTML*/
     
    <form action="send_email.php" method="post">
        <p>
            <label for="civilite">Civilité :</label>
            <select id="civilite" name="civilite">
                <option value="mr" selected="selected">Monsieur</option>
                <option value="mme">Madame</option>
                <option value="mlle">Mademoiselle</option>
            </select>
        </p>
        <p>
            <label for="nom">Nom/Prénom :</label>
            <input type="text" id="nom" name="nom" />
        </p>
        <p>
            <label for="email">E-mail :</label>
            <input type="text" id="email" name="email" />
        </p>
        <p>
            <label for="sujet">Sujet :</label>
            <input type="text" id="sujet" name="sujet" />
        </p>
        <p>
            <label for="message">Message :</label>
            <textarea id="message" name="message" cols="40" rows="4"></textarea>
        </p>
        <p>
            <input type="submit" name="envoye" value="Envoyer" />
        </p>
    </form>
     
     
     
    /* Récupération des valeurs des champs du formulaire */
    if (get_magic_quotes_gpc())
    {
        $civilite = stripslashes($_POST['civilite']); 
        $nom = stripslashes($_POST['nom']); 
        $expediteur = stripslashes($_POST['email']); 
        $sujet = stripslashes($_POST['sujet']); 
        $message = stripslashes($_POST['message']); 
    } 
    else
    {  
        $civilite = $_POST['civilite'];
        $nom = $_POST['nom']; 
        $expediteur = $_POST['email']; 
        $sujet = $_POST['sujet']; 
        $message = $_POST['message']; 
    }
     
    /* Destinataire (votre adresse e-mail) */
    $to = 'cemalkayaie@hotmail.com';
     
    /* Construction du message */
    $msg  = 'Bonjour,'."\r\n\r\n";
    $msg .= 'Ce mail a été envoyé depuis monsite.com par '.$civilite.' '.$nom."\r\n\r\n";
    $msg .= 'Voici le message qui vous est adressé :'."\r\n";
    $msg .= '***************************'."\r\n";
    $msg .= $message."\r\n";
    $msg .= '***************************'."\r\n";
     
    /* En-têtes de l'e-mail */
    $headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
     
    /* Envoi de l'e-mail */
    mail($to, $sujet, $msg, $headers);
     
    ?>

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 28
    Points : 40
    Points
    40
    Par défaut
    déplace le <?php juste avant ton code php (apres </form>)... en fait <?php et ?> doivent encadrer ton code php, le code html doit être en dehors de ces balises ....

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    Merci Fred pour ton astuce

    Dis moi après modification (<?php et ?> ) j'ai encore un message d'erreur

    Web local:
    Warning: Illegal or truncated character in input: offset 10, state=0 in C:\Program Files (x86)\EasyPHP6.0dev\www\10Mecontacter.php on line 60
    Parse error: parse error in C:\Program Files (x86)\EasyPHP6.0dev\www\10Mecontacter.php on line 60

    A+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 28
    Points : 40
    Points
    40
    Par défaut
    T'as quoi en ligne 60 ?
    D'ailleurs en lisant vite fait ton code :
    <form action="send_email.php" method="post">
    signifie que ton formulaire va etre envoyé dans le fichier php send_email.php, donc tout ton code php doit se trouver dans le fichier send_email.php (ou alors tu dois faire pointer ton formulaire sur le fichier 10Mecontacter.php.
    Ensuite en lisant a la volée ton code php je testerai d'abord avec isset si tes
    $_POST['x'] existent ça peut etre source de message d'erreur ...

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    Est ce que j'ai bien compris?

    J'ai apporté la modification suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="10Mecontacter.php" method="post">
    Message d'erreur en web local:
    Warning: Illegal or truncated character in input: offset 10, state=0 in C:\Program Files (x86)\EasyPHP6.0dev\www\10Mecontacter.php on line 58
    Parse error: parse error in C:\Program Files (x86)\EasyPHP6.0dev\www\10Mecontacter.php on line 58
    La line 58 correspond à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $msg .= 'Ce mail a été envoyé depuis monsite.com par '.$civilite.' '.$nom."\r\n\r\n";
    Merci Fred

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 28
    Points : 40
    Points
    40
    Par défaut
    ... dans le php faut commencer par tester que tes $_POST existent avec isset
    (du style if (isset($_POST['x'])) {} else {}...) sinon tu vas envoyer systématiquement un mail a chaque fois que t'affiche ton formulaire (ton code php est exécuté a chaque fois donc a chaque affichage de ta page la fonction mail est appelée)

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    Salut Fred

    Apres quelques recherches sur le net ci joint les modifs
    - un fichier 9Mecontacter.html pour la mise en forme ...ACTION="saisie.php"...
    - un fichier saisie.php avec le code suivant:

    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
    <?php
    // on teste si le formulaire a été soumis
    	if (!isset($_POST['envoi']))
    	{
    		// formulaire non envoyé
    		echo "Vous devez d'abord cliquer sur Envoyer.";
    	}
    	else
    	{
      //on récupère nos valeurs
    if(isset($_POST['nom'])
      { $phpnom = $_POST['nom'] }
    if(isset($_POST['prenom'])
      { $phpprenom = $_POST['prenom'] }
    if(isset($_POST['telephone'])
      { $phptelephone = $_POST['telephone'] }
    if(isset($_POST['email'])
      { $phpemail = $_POST['email'] }
    if(isset($_POST['objet'])
      { $phpobjet = $_POST['objet'] }
    if(isset($_POST['message'])
      { $phpmessage = $_POST['message'] }
    	}
     
     
    ?>
    2 questions:
    -est ce que c'est bon?
    -quelle est la prochaine étape: comment rediger l'e-mail et l'envoyer?

    Merci pour tout

  8. #8
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Citation Envoyé par CE.KA Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $msg .= 'Ce mail a été envoyé depuis monsite.com par '.$civilite.' '.$nom."\r\n\r\n";
    Je ne suis pas expert en php mais est ce normal que tu commance l'attribut d'une variable par ".=" au lieu de "=" ?
    Ensuite pourquoi tu commences ta valeur affecté à ta variable par simple quote (') pour finir avec les guillemets (") ??
    Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

    FAQ ASP

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    on utilise le "=" pour initailiser une variable. Lorsqu'il s'agit d'une chapine de caractères comme ici "msg" que l'on construit en plusieurs fois on utilise ".=" pour mettre à la suite.

    msg=" bonjour le monde" est équivalent à
    msg="bonjour le "; suivi de msg.='monde";

    Quant à l'emploi des ' ou des ", on a le choix..mais lorsque qu'on commence avec ' on finit avec '.

    msg=" bonjour le monde" est équivalent à msg=' bonjour le monde' mais ceci n'est pas permis msg=' bonjour le monde" .

    C'est sans doute l'erreur de syntaxe signalé ici en ligne 58.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    ça m'a l'air mieux et plus propre.
    Tu peux continuer par la code que tu avais donné plus haut :

    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
     
    /* Destinataire (votre adresse e-mail) */
    $to = 'cemalkayaie@hotmail.com';
     
    /* Construction du message */
    $msg  = 'Bonjour,'."\r\n\r\n";
    $msg .= 'Ce mail a été envoyé depuis monsite.com par '.$civilite.' '.$nom."\r\n\r\n";
    $msg .= 'Voici le message qui vous est adressé :'."\r\n";
    $msg .= '***************************'."\r\n";
    $msg .= $message."\r\n";
    $msg .= '***************************'."\r\n";
     
    /* En-têtes de l'e-mail */
    $headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
     
    /* Envoi de l'e-mail */
    mail($to, $sujet, $msg, $headers);
    en le corrigeant des simple quote et double quote comme expliqué dans mon message précédent.

    Il est aussi conseillé de faire un if sur la fonction mail + un lien retour sur la page de ton choix:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (mail($to, $sujet, $msg, $headers);){
    echo "envoi du mail OK";
    }else{
    echo" problème d'envoi du mail;}
     
    echo " <a href="mapagederetour.htm"> retour </a>";

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/05/2014, 17h23
  2. [SP-2010] Formulaire de tâches : Message d'erreur
    Par Gratiano dans le forum SharePoint
    Réponses: 3
    Dernier message: 03/12/2013, 09h02
  3. [CS4] Formulaire de contact Flash + PHP Erreur
    Par julien1199 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 17/10/2010, 22h28
  4. Réponses: 0
    Dernier message: 04/12/2009, 10h10
  5. Réafficher le formulaire avec un message d'erreur
    Par smp82 dans le forum Langage
    Réponses: 3
    Dernier message: 23/11/2008, 17h50

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