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 :

Création d'un formulaire php avec pièce jointe


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2009
    Messages : 380
    Points : 134
    Points
    134
    Par défaut Création d'un formulaire php avec pièce jointe
    Bonjour,

    Voici le code de mon formulaire (il fonctionne très bien !). J'aimerais maintenant y ajouter la possibilité d'y insérer une pièce jointe, voir plusieurs... et je n'y arrive pas

    ======================================
    Structure :
    racine
    • pj.html
    • Confirm_pj.html

    \php
    • mail_pj.php
    • mail_pj - validation_pj.php

    \js
    • verifications_pj.js
    ======================================

    Voici mon code avec ce que j'ai déjà ajouter pour l'insertion des pièces jointes :

    Fichier html (pj.html)
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>ujju jyuj ujy u uyjuy juy  | ASBL | 000000000 | </title>
    <meta http-equiv="content-Language" content="fr" />
    <meta name="description" content="rth rh tyh tyh tyhtyhtyh tyhyh yh tht" /> 
    <meta name="keywords" content="hy thyth h ththtyhty htyht htyhtyh tyhty htyh" /> 
    <script>
    //Un generateur de mot de passe - par lecodejava.com
     
    var keylist="1234567890"
    var temp=''
     
    function generatepass(plength){
    temp=''
    for (i=0;i<plength;i++)
    temp+=keylist.charAt(Math.floor(Math.random()*keylist.length));
    return temp;
    }
     
    function populateform(enterlength){
    document.pgenerate.output.value=generatepass(enterlength);
     
    }
    </script>
     
    <script type="text/javascript" src="js/verifications_pj.js"></script>
     
    <STYLE>
    A:unknown {
    	font-family: Arial; font size="15"; COLOR: #000066; TEXT-DECORATION: underline
    }
    A:link {
    	font-family: Arial; font size="15"; COLOR: #003399; TEXT-DECORATION: underline 
    }
    A:visited {
    	font-family: Arial; font size="15"; COLOR: #993300; TEXT-DECORATION: underline
    }
    A:active {
    	font-family: Arial; font size="15"; COLOR: #003399; TEXT-DECORATION: none
    }
    A:hover {
    	font-family: Arial; font size="15"; COLOR: #FF6600; TEXT-DECORATION: underline
    }
    body {
    	background-color: #eaeff5;
    	margin-left: 0px;
    	margin-top: 0px;
    	margin-right: 0px;
    	margin-bottom: 0px;
    }
    .Style1 {color: #993300}
    .Style2 {font-size: 10px}
    .Style3 {
    	color: #FF0000;
    	font-weight: bold;
    }
    </style>
    </head>
     
    <body>
    <div id="contener">
    <table width="480" height="200" border="0" align="left" cellpadding="0" cellspacing="0" bordercolor="#0000CC" bgcolor="#eaeff5">
      <tr> 
        <td width="480" height="200" align="left" valign="top"> 
          <form action="php/mail_pj.php" method="post" enctype="multipart/form-data" name="pgenerate">
    	    <div align="left"></div>
            <table border="0" cellspacing="0" cellpadding="0" height="79">
              <tr> 
                <td width="100" height="30"><font size="2" class="Texte01">Nom : </font></td>
                <td width="380" height="30"> 
                  <input name="nom" type="text" id="nom" size="40"></td>
              </tr>
              <tr>
                <td height="30"><p><font size="2" class="Texte01">Email</font>:</p></td>
                <td height="30"><input name="mail" type="text" id="mail" size="40" /></td>
              </tr>
              <tr>
                <td height="19" colspan="2">&nbsp;</td>
              </tr>
            </table>
     
     
            <table width="100%" border="0" cellpadding="0">
              <tr>
                <td width="15%"><font size="2" class="Texte01">Captcha :</font></td>
                <td width="85%"><input type="text" name="output"style="border:0px;background-color:transparent;font-size:15pt;width:105px;height:28px;visibility:visible" disabled/>
                <input type="button" value="G&eacute;n&eacute;rer un nouveau code" onClick="populateform(4)" /></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td><font size="2" class="Texte01">Entrez le code  :</font>
                  <input name="validationok" type="text" id="validationok" size="5" /></td>
              </tr>
            </table>
            Pièce jointe : 
            <input name="pj" type="file" id="pj" size="30" /><br>
            <input type="submit" value="Envoyer le fichier" /><br>
            <table width="99%" border="0" cellpadding="0">
              <tr>
                <td width="7%">&nbsp;</td>
              </tr>
            </table>
            <p> 
              <input type="button" value="Envoyer" onclick="verif(this.form);"/>
              <input type="reset" value="Effacer" />
            </p>
    		  <script type="text/javascript">
    populateform(4);
    </script>
          </form>    </td>
      </tr>
    </table>           
     
    </body>
     
    </html>
    J'ai ajouté :
    • enctype="multipart/form-data"
    • <input name="pj" type="file" id="pj" size="30" /><br>
    • <input type="submit" value="Envoyer le fichier" /><br>




    Fichier html (Confirm_pj.html)
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    <title>FORMULAIRE | SEP | 000000| </title>
    <meta http-equiv="content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="content-Language" content="fr" />
    <meta name="description" content="get grtg rtgrtgrtgtr grt g trg rtg rtg" /> 
    <meta name="keywords" content="gtrgrt gtrg rtgtrgtrgtrg rtg rtg trgtrg trgrtg " /> 
    <meta http-equiv="Refresh" content="3;URL=pj.html">
     
    <!--[if lt IE 7.]>
    	<script defer type="text/javascript" src="js/pngfix.js"></script>
    <![endif]-->
    <title>Confirmation  Formulaire</title>
    <style type="text/css">
    <!--
    body {
    	background-color: #eaeff5;
    }
    .Style1 {
    	color: #993300;
    	font-weight: bold;
    	font-size: 18px;
    }
    -->
    </style>
    </head>
     
    <body>
    <p class="Style1">Votre inscription a bien &eacute;t&eacute; envoy&eacute;e !</p>
    <p><a href="pj.html" target="_self">Retour au formulaire </a></p>
    </body>
    </html>
    Fichier php (mail_pj.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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Refresh" content="0.1;URL=../Confirm_pj.html">
    <title>Envoie du mail</title>
     
    </head>
    <body>
    	<?php
    		$nom=$HTTP_POST_VARS['nom']; 
    		$mail=$HTTP_POST_VARS['mail'];
    ;
     
    		$email = 'formulaires@xxxx.com'; // c'est la personne qui recevra le message !
    		$email_reply = 'cihenrard@yxx.be'; // c'est la personne qui recevra le réponse !
    		$sujet ='Inscription';
     
    		$from = 'WebMaster'; // c'est le nom du contact qui sera affiché
    		$from_mail = '$mail'; // c'est l'adresse à partir de laquelle le mail est envoyé, veillez à ce que l'adresse existe bien
    		/////voici la version Mine 
    		$headers = 'Mime-Version: 1.0'."\r\n";
    		$headers .= 'Content-type: text/html; charset=utf-8'."\r\n";
    		$headers .= 'From: "INSCRIPTION"<'.$mail.'>'."\n"; 
    		$body= "
    		<font color='#990033'>Journée
    		<br />======================= 2015</font>
    		<br />$nom
    		<br />
    		"; 
    		mail($email,$sujet,$body, $headers);
     
     
     
     
    		$email = $mail;  // c'est la personne qui recevra le message !
    		$email_reply = 'formulaires@xxxxx.be'; // c'est la personne qui recevra le réponse !
    		$sujet ='Confirmation de l\'inscription';
     
    		$from = 'Formulaire'; // c'est le nom du contact qui sera affiché
    		$from_mail = '$mail'; // c'est l'adresse à partir de laquelle le mail est envoyé, veillez à ce que l'adresse existe bien
    		/////voici la version Mine 
    		$headers = 'Mime-Version: 1.0'."\r\n";
    		$headers .= 'Content-type: text/html; charset=utf-8'."\r\n";
    		$headers .= 'From: "INSCRIPTION"<'.$mail.'>'."\n"; 
    		$body= "
    		<font color='#990033'>Journée
    		<br />======================= 2015</font>
    		<br />$nom
    		<br />
    		"; 
    		mail($email,$sujet,$body, $headers);
     
    	?>
    </body>
    </html>
    Fichier js (verifications_pj.js)
    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
    function verif(f)
    {
    	nom = f.nom.value;
    	if (nom == "Nom *" || nom == "")
    	{
    	 alert("Veuillez indiquer votre Nom !");
    	 f.nom.focus();
    	 return(false);
    	}
    	mail = f.mail.value;
    	if (mail == "")
    	{
    	 alert("Veuillez indiquer votre adresse de messagerie !");
    	 f.mail.focus();
    	 return(false);
    	}
    	validationok = f.validationok.value;
        output = f.output.value;
        if (validationok != output || validationok == "")
        {
        alert("Veuillez indiquer le bon code !");
        f.validationok.focus();
        return(false);
        }
    	f.submit();
    	return(true);
    }
    Fichier php (mail_pj - validation_pj.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
    <?php
    // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
    if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
    {
            // Testons si le fichier n'est pas trop gros
            if ($_FILES['monfichier']['size'] <= 1000000)
            {
                    // Testons si l'extension est autorisée
                    $infosfichier = pathinfo($_FILES['monfichier']['name']);
                    $extension_upload = $infosfichier['extension'];
                    $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                    if (in_array($extension_upload, $extensions_autorisees))
                    {
     
                    }
            }
    }
    ?>
    Ce morceau de code devrait être utilisé pour les pièces jointes, mais comment et ou et est-il complet ? Dois-je l'insérer au fichier js ?

    Pourriez-vous m'aider à compléter mon code pour qu'il puisse envoyer des pièces jointes ?

    Grand merci d'avance :-)

  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
    Comme tu peux le voir c'est du PHP, il ne va donc pas dans ton fichier Javascript mais bien dans ton traitement PHP en reception de formulaire.
    Et comme tu le vois il n'est pas complet puisqu'il n'y a rien comme traitement dans le dernier if{}

    Je suppose que tu veux, si je lis bien entre tes lignes, renvoyer la pièce jointe par mail.
    Auquel cas je te conseille plutôt d'utiliser la classe PHPMailer que d'utiliser directement la fonction mail.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Pas meilleur conseil que celui de sabotage.

    D'autant plus que tu es loin du compte et par ailleurs quand tu auras lié ton upload au mail, pas impossible que le mail soit considéré comme spam chez certains clients de messagerie (indépendamment du fait qu'il y ait une pièce jointe ou non). La classe phpmailer est une bonne solution pour éviter de se prendre la tête.

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2009
    Messages : 380
    Points : 134
    Points
    134
    Par défaut
    ok,

    merci pour vos lumières :-)

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/06/2014, 15h26
  2. Réponses: 2
    Dernier message: 06/10/2011, 09h27
  3. [RegEx] [Formulaire]= problème d'envoi de formulaire avec pièces jointes
    Par lyamarin dans le forum Langage
    Réponses: 22
    Dernier message: 03/04/2007, 13h29
  4. Formulaire avec pièce jointe ne fonctionne pas
    Par Icesik dans le forum Langage
    Réponses: 6
    Dernier message: 08/02/2007, 14h55
  5. Envoyer formulaire avec pièce jointe
    Par Samanta dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/03/2006, 21h35

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