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 HTML


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Points : 17
    Points
    17
    Par défaut Formulaire HTML
    Bonjour à tous!

    Je me rapproche de vous afin d'avoir de l'aide pour la réalisation d'un Formulaire pour mon site WEB :

    Mes difficultés du jours sont :

    1°) J'ai créé un formulaire sur une page web de mon site et je souhaiterais en récupérer les données sans utiliser le système de messagerie ou sans la commande mailtoxx@ddd.com

    Je développe mon site avec DREAMWAVER en local.
    J'ai d'installé sur mon PC WAMP mais je n'ai pas encore mis le repertoire de mon site à la racine .www de mon serveur.

    2°) Pour recevoir les données de mon formulaire j'ai créé un fichier Cible.PHP afin de données les instructions de récupération de données lié à mon formulaire de ma page HTML. En Action de mon formulaire, je pointe sur mon fichier cible.php et en méthode j'ai mis POST.

    Cependant quand je clique sur mon bouton, c'est mon fichier cible.php qui s'ouvre.

    Je dois mal comprendre l'utilisation des formulaire.

    Pouvez-vous m'aider à résoudre ce soucis svp?

    Merci d'avance pour vos réponses

    PC PORT DELL WIN2000 DREAMWAVER 4 MX

    3°) Voici le code de ma page HTML :

    Code html : 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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body>
      <form action="cible.php" method="post" name="Formulaire" id="Formulaire">
        <div align="center">
          <p><strong><font size="+1" face="Monotype Corsiva">Nom :</font></strong> 
            <input name="Nom" type="text" id="Nom" maxlength="50">
            <strong><font size="+1" face="Monotype Corsiva">Pr&eacute;nom :</font></strong> 
            <input name="Prenom" type="text" id="Prenom" maxlength="50">
          </p>
          <p><strong><font size="+1" face="Monotype Corsiva">E-mail :</font></strong> 
            <input name="Email" type="text" id="Email" maxlength="50">
            <strong><font size="+1" face="Monotype Corsiva">T&eacute;l&eacute;phone 
            : </font></strong> 
            <input name="Telephone" type="text" id="Telephone" maxlength="10">
          </p>
          <p><font size="+1" face="Monotype Corsiva"><strong>Objet :</strong></font> 
            <input name="Objet" type="text" id="Objet" maxlength="50">
          </p>
          <p><font size="+1" face="Monotype Corsiva"><strong>Message </strong></font></p>
          <p><strong><font size="+1" face="Monotype Corsiva"> 
            <textarea name="Message" cols="60" rows="8" id="Message"></textarea>
            </font></strong></p>
          <p><strong><font size="+1" face="Monotype Corsiva"> 
            <input type="submit" name="Submit" value="Envoyer">
            </font></strong></p>
        </div>
      </form>
    </body>
    </html>

    4°) Voici le code de mon fichier Cible.PHP
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php 
    if($_POST) { 
     
    $message = $_POST['Nom']; 
    $message .=$_POST['Prenom'];
    $message .=$_POST['Email'];
    $message .=$_POST['Telephone'];
    $message .=$_POST['Objet'];
    $message .=$_POST['Message'];
     
     
    mail("MOI@xxx.com", "sujet du courrier", $message, "From: <a href="mailto:internaute@xxx.com">internaute@xxx.com</a>") ;
     
    } 
    ?>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Ce que tu fais à l'air bien (je n'ai pas trop regarder ton code).

    Normalement tu dois recevoir un mail avec la valeur de $message ? c'est bien ça ?

    Le fichier HTML est là pour afficher le formulaire.
    Lorsque tu cliques sur le bouton 'Envoyer', il envoie les données au serveur et lui dit de lui retourner la page cible.php

    La page cible.php récupère les données sur le serveur et si tu fais echo $message; il affiche les données. Dans ton cas, il n'affiche rien car tu lui dis de ne rien afficher, il t'envoie seulement un mail et c'est tout.

    Regarde un tutoriel sur le fonctionnement de PHP pour mieux comprendre si tu trouves que je m'exprime mal. Désolé.

  3. #3
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Bonjour,

    Citation Envoyé par djamess Voir le message
    J'ai d'installé sur mon PC WAMP mais je n'ai pas encore mis le repertoire de mon site à la racine .www de mon serveur.
    Cependant quand je clique sur mon bouton, c'est mon fichier cible.php qui s'ouvre.
    c'est normal tant que ton répertoire n'est pas sur ton serveur local ...
    Le php s'exécute coté serveur et non pas coté client.

    EDIT : De plus, ton code php (comme ton html vu la balise font) n'est pas bon.
    Voir ce tuto
    Je ne réponds pas aux questions techniques par MP.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Points : 17
    Points
    17
    Par défaut Modification du script PHP pour l'envoi d'un formulaire
    Bonjour à vous!

    Tout d'abord merci de vos réponses!

    Macmillenium, j'ai bien pris note de tes remarques et surtout lu le tuto vers lequel tu m'as orienté;Bien utile!

    Cependant, je suis toujours ennuyé car cela ne fonctionne pas!

    Quand je clique sur Envoyé de ma page web, j'ai toujours :

    - la page de mon scripte php qui s'ouvre en ayant tout le code PHP écrit en clair sur la page web,

    -mon formulaire sans mise en forme qui s'affiche,

    -mon e-mail non envoyé donc non réceptionné.

    Pouvez-vous s'il vous plait annalyser mon code du dessous et identifier mes maladresses afin que je puisse créer mon premier formulaire web.

    MERCI D'AVANCE POUR TOUTE VOTRE AIDE! (voir la suite pour le Code)



    Voici comment j'ai fait évolué ma méthode pour que les informations de mon formulaire me parviennent par e-mail grâce à un script PHP sans utiliser la fonction mailto :

    1°) Code de la Page HTML
    Le même qu'à mon premier message d'hier du dessus

    2°) Code du fichier cible.php
    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
    85
    86
    87
    88
    /* Récupération des valeurs des champs du formulaire */
    if (get_magic_quotes_gpc())
    {
        $Nom = stripslashes($_POST['Nom']); 
        $Prenom = stripslashes($_POST['Prenom']); 
        $Email = stripslashes($_POST['Email']); 
        $Telephone = stripslashes($_POST['Telephone']);
        $Objet = stripslashes($_POST['Objet']); 
        $Message = stripslashes($_POST['Message']); 
    } 
    else
    {  
        $Nom = $_POST['Nom'];
        $Prenom = $_POST['Prenom']; 
        $Email = $_POST['Email'];
        $Telephone = $_POST['Telephone']; 
        $Objet = $_POST['Objet']; 
        $Message = $_POST['Message']; 
    }
     
    /* Destinataire (votre adresse e-mail) */
    $to = 'MOI@laposte.net';
     
    /* Construction du message */
    $msg  = 'Bonjour,'."\r\n\r\n";
    $msg .= 'Ce mail a été envoyé depuis MOI.com par '.$Nom.' '.$Prenom."\r\n\r\n";
    $msg .= 'L'Email de la personne est :'.$Email. "\r\n";
    $msg .= 'Le numéro de Téléphone de la personne est :'.$Telephone. "\r\n";
    $msg .= 'L'Objet du message est :'.$Objet. "\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.' <'.$Email.'>'."\r\n\r\n";
     
    /* Envoi de l'e-mail */
    mail($to, $Objet, $msg, $headers);
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>XXXXXXXXXXXX</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
     
     
    <form action="cible.php" method="post">
     
        <p>
            <label for="Nom">Nom :</label>
            <input type="text" id="Nom" name="Nom" 
            	value="<?php echo (isset($_POST['Nom'])) ? $Nom : '' ?>" 
            />
        </p>
       <p>
            <label for="Prenom">Prénom :</label>
            <input type="text" id="Prenom" name="Prenom" 
            	value="<?php echo (isset($_POST['Prenom'])) ? $Prenom : '' ?>" 
            />
        </p>
        <p>
            <label for="Email">E-mail :</label>
            <input type="text" id="Email" name="Email" 
            	value="<?php echo (isset($_POST['Email'])) ? $Email : '' ?>"
            />
        </p>
        <p>
            <label for="Objet">Objet :</label>
            <input type="text" id="Objet" name="Objet" 
            	value="<?php echo (isset($_POST['Objet'])) ? $Objet : '' ?>"
            />
        </p>
        <p>
            <label for="Message">Message :</label>
            <textarea id="Message" name="Message" cols="40" rows="4">
    			<?php echo (isset($_POST['Message'])) ? $Message : '' ?>
            </textarea>
        </p>
        <p>
            <input type="submit" name="submit" value="Envoyer" />
        </p>
    </form>
     
    </body>
    </html>

  5. #5
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Tu construit mal tes variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $msg  = "Bonjour,"."\r\n\r\n";
    $msg .= "Ce mail a été envoyé depuis MOI.com par ".$Nom." ".$Prenom."\r\n\r\n";
    $msg .= "L'Email de la personne est :".$Email. "\r\n";
    $msg .= "Le numéro de Téléphone de la personne est :".$Telephone. "\r\n";
    $msg .= "L'Objet du message est :".$Objet. "\r\n";
    $msg .= "Voici le message qui vous est adressé :"."\r\n";
    $msg .= "***************************"."\r\n";
    $msg .= $Message."\r\n";
    $msg .= "***************************"."\r\n";
    Tu utilisé des ' dans utiliser de le caractère d'echapement \, car quand tu veux mettre un ' dans une chaine de caractère déja entouré par ' , il faut le faire comme ceci :
    $ma_var = 'L\'Aventura';
    ou bien
    $ma_var = "L'Aventura";

    Sache aussi qu'en local j'ai souvent eu quelque souci pour les envoie de mail, il faut penser à bien configurer ton php.ini pour qu'il utilise un mail pour l'envoie.
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Points : 17
    Points
    17
    Par défaut DECLARATION DES VARIABLES
    Bonjour SirDarken,

    Merci de ta réponse.

    J'ai réalisé les changements pour les déclarations de variable, cependant toujours la même chose.Peux-tu préciser davantage stp?

    Voici à nouveau le code me script modifié comme tu me l'as dis :
    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
    85
    86
    87
    88
    /* Récupération des valeurs des champs du formulaire */
    if (get_magic_quotes_gpc())
    {
        $Nom = stripslashes($_POST['Nom']); 
        $Prenom = stripslashes($_POST['Prenom']); 
        $Email = stripslashes($_POST['Email']); 
        $Telephone = stripslashes($_POST['Telephone']);
        $Objet = stripslashes($_POST['Objet']); 
        $Message = stripslashes($_POST['Message']); 
    } 
    else
    {  
        $Nom = $_POST['Nom'];
        $Prenom = $_POST['Prenom']; 
        $Email = $_POST['Email'];
        $Telephone = $_POST['Telephone']; 
        $Objet = $_POST['Objet']; 
        $Message = $_POST['Message']; 
    }
     
    /* Destinataire (votre adresse e-mail) */
    $to = 'soua@laposte.net';
     
    /* Construction du message */
    $msg  = "Bonjour,"."\r\n\r\n";
    $msg .= "Ce mail a été envoyé depuis souasoua.com par ".$Nom." ".$Prenom."\r\n\r\n";
    $msg .= "L'Email de la personne est : ".$Email. "\r\n";
    $msg .= "Le numéro de Téléphone de la personne est : ".$Telephone. "\r\n";
    $msg .= "L'Objet du message est :".$Objet. "\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.' <'.$Email.'>'."\r\n\r\n";
     
    /* Envoi de l'e-mail */
    mail($to, $Objet, $msg, $headers);
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Contact SOUASOUA</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
     
     
    <form action="cible.php" method="post">
     
        <p>
            <label for="Nom">Nom :</label>
            <input type="text" id="Nom" name="Nom" 
            	value="<?php echo (isset($_POST['Nom'])) ? $Nom : '' ?>" 
            />
        </p>
       <p>
            <label for="Prenom">Prénom :</label>
            <input type="text" id="Prenom" name="Prenom" 
            	value="<?php echo (isset($_POST['Prenom'])) ? $Prenom : '' ?>" 
            />
        </p>
        <p>
            <label for="Email">E-mail :</label>
            <input type="text" id="Email" name="Email" 
            	value="<?php echo (isset($_POST['Email'])) ? $Email : '' ?>"
            />
        </p>
        <p>
            <label for="Objet">Objet :</label>
            <input type="text" id="Objet" name="Objet" 
            	value="<?php echo (isset($_POST['Objet'])) ? $Objet : '' ?>"
            />
        </p>
        <p>
            <label for="Message">Message :</label>
            <textarea id="Message" name="Message" cols="40" rows="4">
    			<?php echo (isset($_POST['Message'])) ? $Message : '' ?>
            </textarea>
        </p>
        <p>
            <input type="submit" name="submit" value="Envoyer" />
        </p>
    </form>
     
    </body>
    </html>
    Du reste côté serveur pour le fichier php.ini, j'ai laissé :

    smtp localhost
    port 25

    est-ce juste?
    Faut-il ouvrir le port 25 au niveau du routeur?

    où bien faut-il écrire :

    smtp smtp.wanadoo.fr
    port 25

    Encore merci de l'attention que vous porterez à mes demandes.

    Bonne fin de journée à vous.

  7. #7
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    Bonjour,

    Si le code source PHP s'affiche dans ta page sans être interprété, c'est sans doute parce que tu as oublié les balises PHP.

    Le code PHP doit se trouver entre la balise ouvrante <?php et la balise fermante ?>.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo "nous sommes le " . date("d/m/Y");
    ?>
    Gillou

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Points : 17
    Points
    17
    Par défaut SMTP
    Bonjour LeGilou,

    En effet ça va de suite mieux!

    Je ne vois plus le code affiché dans ma page web!
    Merci pour ton aide!

    Cependant, j'ai un warning :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:\wamp\www\SOUA SOUA\Contact\Message\cible.php on line 40
    Dans mon fichier init.php

    J'ai

    smtp localhost
    port 25

    Faut-il mettre autre chose?Ouvrir le port?

    Je suis chez Orange en Fournisseur d'acces.

    Merci de vos réponses et tte votre aide.

    Bonne fin de journée à vous.

  9. #9
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    Tu avais la bonne réponse ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    smtp smtp.wanadoo.fr
    port 25
    Mais certains fournisseurs imposent que l'emetteur soit connu.
    Donc il faudra peut etre aussi renseigner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sendmail_from = ton_adresse@wanadoo.fr

    Gillou

    PS : C'est pas init.php, c'est php.ini

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Points : 17
    Points
    17
    Par défaut Piece jointe
    Bonjour à vous!

    Merci pour votre aide, j'ai réussis à faire fonctionner mon premier formulaire web.

    Cependant, j'en ai construit un autre mais où il faut pouvoir télécharger 2 pièces jointes.

    Cependant ce que je n'arrive pas à faire c'est commander les deux boutons parcourrir pour quand je suis sur le web aller chercher les fichiers à joindre.

    Dans un premier temps, j'ai construit une page HTML ou j'ai mon formulaire de saisis dont voici le 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
    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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body>
      <form action="ciblerecrut.php" method="post" name="Formulaire" id="Formulaire">
        <table width="99%" height="154" border="0">
          <tr> 
            <td width="32%" height="28"><div align="right"><font face="Monotype Corsiva"><strong>Votre 
                E-mail : </strong></font></div></td>
            <td width="30%"><input name="Email" type="text" id="Email"></td>
            <td width="38%">&nbsp;</td>
          </tr>
          <tr> 
            <td height="30"><div align="right"><font face="Monotype Corsiva"><strong>Poste 
                souhait&eacute; :</strong> : </font></div></td>
            <td><input name="Objet" type="text" id="Objet"></td>
            <td>&nbsp;</td>
          </tr>
          <tr> 
            <td height="28"><div align="right"><font face="Monotype Corsiva"><strong>Lettre 
                de Motivation :</strong></font></div></td>
            <td><div align="center">
                <input name="LM" type="text" id="LM3">
              </div></td>
            <td><input name="BLM" type="submit" id="BLM3" value="Parcourrir"></td>
          </tr>
          <tr> 
            <td height="28"><div align="right"><font face="Monotype Corsiva"><strong>CV 
                :</strong></font></div></td>
            <td><div align="center">
                <input name="CV" type="text" id="CV3">
              </div></td>
            <td><input name="BCV" type="submit" id="BCV3" value="Parcourrir"></td>
          </tr>
          <tr>
            <td height="28">&nbsp;</td>
            <td><div align="center">
                <input type="submit" name="Submit" value="Envoyer">
              </div></td>
            <td>&nbsp;</td>
          </tr>
        </table>
        <p>&nbsp;</p>
        </form>
    </body>
    </html>
    Puis j'ai construit mon fichier script php cliblerecrut.php 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
    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
    /* Récupération des valeurs des champs du formulaire */
    if (get_magic_quotes_gpc())
    {
        $Email = stripslashes($_POST['Email']); 
    	$Objet = stripslashes($_POST['Objet']);
    	$LM = stripslashes($_POST['LM']); 
    	$CV = stripslashes($_POST['CV']);   
    } 
    else
    {  
        $Email = $_POST['Email']; 
        $Objet = $_POST['Objet'];
    	$LM = $_POST['LM']; 
    	$CV = $_POST['CV'];    
    }
     
    // To
    $to = "MOI@laposte.net";
     
    /* Construction du message */
    $msg  = "Bonjour,"."\r\n\r\n";
    $msg .= "Ce mail a été envoyé depuis souasoua.com par "."\r\n\r\n";
    $msg .= "L'Email de la personne est : ".$Email. "\r\n";
    $msg .= "L'Objet du message est :".$Objet. "\r\n";
     
     
    /* En-têtes de l'e-mail */
    $headers = "From: "." <".$Email.">"."\r\n\r\n";
     
    // clé aléatoire de limite
    $boundary = md5(uniqid(microtime(), TRUE));
     
    // Headers
    $headers = = "From: "." <".$Email.">"."\r\n\r\n";
    $headers .= 'Mime-Version: 1.0'."\r\n";
    $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
    $headers .= "\r\n";
     
    // Message
    $msg = 'This is a multipart/mixed message.'."\r\n\r\n";
     
    // Texte
    $msg .= '--'.$boundary."\r\n";
    $msg .= 'Content-type:text/plain;charset=utf-8'."\r\n";
    $msg .= 'Content-transfer-encoding:8bit'."\r\n";
    $msg .= 'Un message avec une pièce jointe.'."\r\n";
     
    // Pièce jointe
    $file_name = $LM;
    if (file_exists($file_name))
    {
    	$file_type = filetype($file_name);
    	$file_size = filesize($file_name);
     
    	$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
    	$content = fread($handle, $file_size);
    	$content = chunk_split(base64_encode($content));
    	$f = fclose($handle);
     
    	$msg .= '--'.$boundary."\r\n";
    	$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$msg .= 'Content-transfer-encoding:base64'."\r\n";
    	$msg .= $content."\r\n";
    }
     
    // Fin
    $msg .= '--'.$boundary."\r\n";
     
    // Function mail()
    mail($to, $Objet, $msg, $headers);
    ?>
    Cependant, je ne vois pas de quelle manière il faut commander les boutons pour cibler sur les fichiers à télécharger?

    Quelles sont oublies que j'aurais commis dans l'écriture de mon Code HTML et PHP?

    Merci pour ttes vos réponses!

    Bonne fin de soirée à vous

  11. #11
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    Bonjour,

    Les boutons "parcourir" ne sont pas de simple bouton avec value='parcourir'.
    C'est en fait des elements INPUT de type FILE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="file" name="BLM" />
    Ensuite, si tu veux faire des recherches sur le web cherche plutot "UPLOAD". "Télécharger" c'est pour prendre des fichiers d'un serveur vers un client. Et "Upload" (je ne crois qu'il y ai d'équivalent en français) c'est l'invers. Pour envoyer des fichiers du client vers le serveur. C'est ton cas.

    Je ne rentre pas dans le détail. Ce lien t'informera sur tout ce que tu as à savoir : http://antoine-herault.developpez.co...ls/php/upload/


    Gillou.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Points : 17
    Points
    17
    Par défaut UPLOAD de plusieurs pièces jointes pour un e-mail
    Bonjour à vous!

    Tout d'abord merci à LeGilou pour ton orientation qui m'a permis d'avancer et surtout de comprendre comment on réalisait un champ permettant d'aller pointer sur un fichier à télécharger.

    J'ai écris un script qui a pour but de télécharger deux fichiers et les mettre en pièce jointe d'un e-mail.

    Mon soucis est que je n'arrive pas à construire la méthode qui me permet d'avoir les deux pièces jointes dans le même e-mail.

    Donc mon scripte php se décompose ainsi :

    - Première étape : téléchargement du premier fichier
    - Deuxième étape : téléchargement du deuxième fichier
    - Troisiéme étape : Construction du mail

    Cette troisième étape est décomposée ainsi :

    - Je récupère toutes les valeurs des champs de mon formulaire
    -Je construit mon message
    -JE RECUPERE UNE PIECE JOINTE ne sachant pas en récupérer deux
    - Je finis par envoyer mon e-mail


    Comment dois-je modifier mon scripte pour me permettre d'intégrer les deux pièces jointes?

    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
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    <?php
     
    /*----------------------------------------------------------------*/
    /* UPLOAD des fichiers à envoyer par e-mail                        */
    /*----------------------------------------------------------------*/
     
    /* A- UPLOAD du Premier fichier à envoyer par e-mail   */
     
    $dossierLM = 'upload/';
    $fichierLM = basename($_FILES['LM']['name']);
    $taille_maxiLM = 3000000;
    $tailleLM = filesize($_FILES['LM']['tmp_name']);
    $extensionsLM = array('.doc', '.pdf');
    $extensionLM = strrchr($_FILES['LM']['name'], '.'); 
    //Début des vérifications de sécurité...
    if(!in_array($extensionLM, $extensionsLM)) //Si l'extension n'est pas dans le tableau
    {
         $erreur = 'Vous devez uploader un fichier de type doc ou pdf!';
    }
    if($tailleLM>$taille_maxiLM)
    {
         $erreur = 'Le fichier est trop gros...';
    }
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    {
         //On formate le nom du fichier ici...
         $fichierLM = strtr($fichierLM, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichierLM = preg_replace('/([^.a-z0-9]+)/i', '-', $fichierLM);
         if(move_uploaded_file($_FILES['LM']['tmp_name'], $dossierLM . $fichierLM)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
              echo 'Upload effectué avec succès !';
         }
         else //Sinon (la fonction renvoie FALSE).
         {
              echo 'Echec de l\'upload !';
         }
    }
    else
    {
         echo $erreur;
    }
     
    /* B -UPLOAD du Deuxième fichier à envoyer par e-mail   */
     
    $dossierCV = 'upload/';
    $fichierCV = basename($_FILES['CV']['name']);
    $taille_maxiCV = 3000000;
    $tailleCV = filesize($_FILES['CV']['tmp_name']);
    $extensionsCV = array('.doc', '.pdf');
    $extensionCV = strrchr($_FILES['CV']['name'], '.'); 
    //Début des vérifications de sécurité...
    if(!in_array($extensionCV, $extensionsCV)) //Si l'extension n'est pas dans le tableau
    {
         $erreur = 'Vous devez uploader un fichier de type doc ou pdf!';
    }
    if($tailleCV>$taille_maxiCV)
    {
         $erreur = 'Le fichier est trop gros...';
    }
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    {
         //On formate le nom du fichier ici...
         $fichierCV = strtr($fichierCV, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichierCV = preg_replace('/([^.a-z0-9]+)/i', '-', $fichierCV);
         if(move_uploaded_file($_FILES['CV']['tmp_name'], $dossierCV . $fichierCV)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
              echo 'Upload effectué avec succès !';
         }
         else //Sinon (la fonction renvoie FALSE).
         {
              echo 'Echec de l\'upload !';
         }
    }
    else
    {
         echo $erreur;
    }
     
    /*----------------------------------------------------------------*/
    /* Envoie du mail avec les pièces jointes qui ont été uploadées */
    /*----------------------------------------------------------------*/
     
    /* Récupération des valeurs des champs du formulaire */
    if (get_magic_quotes_gpc())
    {
        $Email = stripslashes($_POST['Email']); 
    	$Objet = stripslashes($_POST['Objet']);
    	$LM = stripslashes($_POST['LM']); 
    	$CV = stripslashes($_POST['CV']);   
    } 
    else
    {  
        $Email = $_POST['Email']; 
        $Objet = $_POST['Objet'];
    	$LM = $_POST['LM']; 
    	$CV = $_POST['CV'];    
    }
     
    // To
    $to = "MOI@laposte.net";
     
    /* Construction du message */
    $msg  = "Bonjour,"."\r\n\r\n";
    $msg .= "Ce mail a été envoyé depuis souasoua.com par "."\r\n\r\n";
    $msg .= "L'Email de la personne est : ".$Email. "\r\n";
    $msg .= "L'Objet du message est :".$Objet. "\r\n";
     
     
    /* En-têtes de l'e-mail */
    $headers = "From: "." <".$Email.">"."\r\n\r\n";
     
    // clé aléatoire de limite
    $boundary = md5(uniqid(microtime(), TRUE));
     
    // Headers
    $headers = = "From: "." <".$Email.">"."\r\n\r\n";
    $headers .= 'Mime-Version: 1.0'."\r\n";
    $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
    $headers .= "\r\n";
     
    // Message
    $msg = 'This is a multipart/mixed message.'."\r\n\r\n";
     
    // Texte
    $msg .= '--'.$boundary."\r\n";
    $msg .= 'Content-type:text/plain;charset=utf-8'."\r\n";
    $msg .= 'Content-transfer-encoding:8bit'."\r\n";
    $msg .= 'Un message avec une pièce jointe.'."\r\n";
     
    // Pièce jointe
    $file_name = $LM;
    if (file_exists($file_name))
    {
    	$file_type = filetype($file_name);
    	$file_size = filesize($file_name);
     
    	$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
    	$content = fread($handle, $file_size);
    	$content = chunk_split(base64_encode($content));
    	$f = fclose($handle);
     
    	$msg .= '--'.$boundary."\r\n";
    	$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$msg .= 'Content-transfer-encoding:base64'."\r\n";
    	$msg .= $content."\r\n";
    }
     
    // Fin
    $msg .= '--'.$boundary."\r\n";
     
    // Function mail()
    mail($to, $Objet, $msg, $headers);
    ?>
    Merci d'avance de toute l'aide que vous pourrez m'apporter.

    Bonne journée à vous.

  13. #13
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    Bonjour,

    Je te suggère d'utiliser cette class : http://classes.scriptsphp.org/doc.mail
    Elle est bien faite et bien documentée.

    Voila ce qu'il faut faire, après avoir téléchargé le fichier class.mail.php :
    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
     
    <?php
    //include de la class
      include('class.mail.php');
     
    //création du mail
      $mail = new simplemail;
    //ajout du ou des destinataire
      $mail -> addrecipient('tetsuo@xxx.com','tetsuo');
      $mail -> addrecipient('plouf@xxx.com','plouf');
      $mail -> addbcc('xxx@xxx.com','plouf');
    //ajout de l'emetteur
      $mail -> addfrom('gwbush@neobagdad.com','gwbush');
    //Ajout de l'objet du mail
      $mail -> addsubject('yyy yyy');
     
    // le message text
      $mail -> text = 'plain text etc. etc. bla bla ...';
     
    // Ajout des pieces jointes.
      $mail -> addattachement ( "cv.doc" );
      $mail -> addattachement ( "lettre de motivation.doc" );
     
    //envoi
      if ( $mail -> sendmail() ) { 
        echo "envoyé"; 
      } else { 
        echo "erreur"; echo $mail->error_log; 
      } 
    ?>
    Gillou

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Points : 17
    Points
    17
    Par défaut Piece jointe
    Bonjour à vous!

    Merci LeGilou pour ta réponse, j'ai pu avancer un peu de mon côté tout de même et j'arrive au résultat suivant :

    - j'arrive à envoyer mes pièces jointes sans uploader;

    - je n'arrive pas à mettre un message qui décris le mail;

    - je n'arrive pas à nommer mes pièces jointes réceptionnées;

    Selon vous que dois-je modifier pour

    - récupérer le nom de mes pièces jointes

    -Afficher la partie Construction du message .

    Merci d'avance de vos suggestion et réponses

    Bonne fin de journée à vous

    Voici le 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
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <?php
     
    /*----------------------------------------------------------------*/
    /* Envoie du mail avec les pièces jointes qui ont été uploadées */
    /*----------------------------------------------------------------*/
     
    /* Récupération des valeurs des champs du formulaire */
    if (get_magic_quotes_gpc())
    {
        $Email = stripslashes($_POST['Email']); 
    	$Objet = stripslashes($_POST['Objet']);
    	$LM = stripslashes($_POST['LM']); 
    	$CV = stripslashes($_POST['CV']);   
    } 
    else
    {  
        $Email = $_POST['Email']; 
        $Objet = $_POST['Objet'];
    	$LM = $_POST['LM']; 
    	$CV = $_POST['CV'];    
    }
     
    // To
    $to = "MOI@laposte.net";
     
    /* En-têtes de l'e-mail */
    $headers = "From: "." <".$Email.">"."\r\n\r\n";
     
    // clé aléatoire de limite
    $boundary = md5(uniqid(microtime(), TRUE));
     
    // Headers
    $headers = "From: "." <".$Email.">"."\r\n\r\n";
    $headers .= 'Mime-Version: 1.0'."\r\n";
    $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
    $headers .= "\r\n";
     
    /* Construction du message */
    $msg  = "Bonjour, "."\r\n\r\n";
    $msg .= "Ce mail a été envoyé depuis souasoua.com "."\r\n\r\n";
    $msg .= "L Email de la personne est : ".$Email. "\r\n";
    $msg .= "L Objet du message est le poste recherché suivant :".$Objet. "\r\n";
    $msg .= "Un message avec une pièce jointe"."\r\n"; 
     
    // Message
    $msg = 'This is a multipart/mixed message.'."\r\n\r\n";
     
    // Texte
    $msg .= '--'.$boundary."\r\n";
    $msg .= 'Content-type:text/plain;charset=utf-8'."\r\n";
    $msg .= 'Content-transfer-encoding:8bit'."\r\n";
     
     
    // Pièce jointe LM
    $file_name = $LM;
    if (file_exists($file_name))
    {
    	$file_type = filetype($file_name);
    	$file_size = filesize($file_name);
     
    	$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
    	$content = fread($handle, $file_size);
    	$content = chunk_split(base64_encode($content));
    	$f = fclose($handle);
     
    	$msg .= '--'.$boundary."\r\n";
    	$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$msg .= 'Content-transfer-encoding:base64'."\r\n";
    	$msg .= $content."\r\n";
    }
     
    // Pièce jointe CV
    $file_name = $CV;
    if (file_exists($file_name))
    {
    	$file_type = filetype($file_name);
    	$file_size = filesize($file_name);
     
    	$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
    	$content = fread($handle, $file_size);
    	$content = chunk_split(base64_encode($content));
    	$f = fclose($handle);
     
    	$msg .= '--'.$boundary."\r\n";
    	$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$msg .= 'Content-transfer-encoding:base64'."\r\n";
    	$msg .= $content."\r\n";
    }
     
    // Fin
    $msg .= '--'.$boundary."\r\n";
     
    $Objet2 = "Poste demandé: ".$Objet."\r\n";
     
    // Function mail()
    mail($to, $Objet2, $msg, $headers);
    ?>

Discussions similaires

  1. [MySQL] Filtre via formulaire HTML/PHP dans Base mySQL
    Par Al3x dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/01/2006, 16h27
  2. Probleme avec mes formulaire html dans mes pages web
    Par foungnigue dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/12/2005, 19h07
  3. PHP -- MYSQL -- Formulaire HTML
    Par waybee dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/11/2005, 09h30
  4. perl et formulaire html.
    Par nah_wah dans le forum Web
    Réponses: 6
    Dernier message: 23/09/2005, 19h38
  5. [POO] Formulaire HTML + fonction JS = Erreur
    Par bdaboah dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/11/2004, 21h59

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