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 + code PHP [Fait]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Formulaire html + code PHP
    Bonjour,

    Je suis occupé de mettre en place un fomulaire html qui fonctionne très bien dans lequel, les invités doivent y laisser des données et une pièce jointe.
    Quand je click sur envoie les données sont bien transférér vers le code php pour l'envoie du mail.

    Mais le fichier joint n'est pas transféré .

    Pouvez-vous m'aider ?

    la variable $scan est le fichier à transférer.

    Je vous joint le code html et php

    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
     
    <html>
    <!-- Date de création: 06/02/2008 -->
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
      <title></title>
      <meta name="description" content="">
      <meta name="keywords" content="">
      <meta name="author" content="Usager non enregistre">
      <meta name="generator" content="monsoft"
    </head>
    <body>
    <form method="post" action="envoimail.php" name="formulaire">
     
        Nom : <input name="nom" size="30" maxlength="50" type="text">
     
        <br /><br />
        Prénom : <input name="prenom" size="30" maxlength="50" type="text"><br /><br />
     
        E-mail : <input name="mail" size="30" maxlength="50" type="text"><br /><br />
     
        Commentaires :
        <textarea name="commentaires" cols="30" rows="6" wrap="soft"></textarea><br /><br />
     
    	Fichier : <input name="scan" size="40" maxlength="60" type="file"><br /><br />
     
        <input name="bouton" value="Envoyer" type="submit">
     
        </form> 
    </body>
    </html>

    et le code 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
     
    <?php
     
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    $mail = $_POST['mail'];
    $commentaires= $_POST['commentaires'];
    $scan=$_post['scan'];
     
     
    //=====Déclaration des messages au format texte et au format HTML
    $message_txt ="Nom : ";
    $message_html = "<html><head></head><body><b>Données pour la demande d'accès</b>,<br><br> <b>Nom :</b> $nom <br> <b>Prenom :</b> $prenom <br> <b>Email: </b> $mail </body></html>";
    //==========
     
    //=====Lecture et mise en forme de la pièce jointe
    $fichier   = fopen($scan, "r");
    $attachement = fread($fichier, filesize($scan));
    $attachement = chunk_split(base64_encode($attachement));
    fclose($fichier);
    //==========
     
    //=====Création de la boundary
    $boundary = "-----=".md5(rand());
    $boundary_alt = "-----=".md5(rand());
    //==========
     
    //=====Définition du sujet
    $sujet = "Hey mon ami !";
    //=========
     
    //=====Création du header de l'e-mail
    $header = "From: \"WeaponsB\"<.....@skynet.be>\n";
    $header.= "Reply-to: \"WeaponsB\" <......@skynet.be>\n";
    $header.= "MIME-Version: 1.0\n";
    $header.= "Content-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
    //==========
     
    //=====Création du message
    $message = "\n--".$boundary."\n";
    $message.= "Content-Type: multipart/alternative;\n boundary=\"$boundary_alt\"\n";
    $message.= "\n--".$boundary_alt."\n";
    //=====Ajout du message au format texte
    $message.="Content-Type: text/plain; charset=\"ISO-8859-1\"\n";
    $message.="Content-Transfer-Encoding: 8bit\n";
    $message.= $message_txt."\n";
    //==========
     
    $message.= "\n--".$boundary_alt."\n";
     
    //=====Ajout du message au format HTML
    $message.="Content-Type: text/html; charset=\"ISO-8859-1\"\n";
    $message.="Content-Transfer-Encoding: 8bit\n";
    $message.= $message_html."\n";
    //==========
     
    //=====On ferme la boundary alternative
    $message.= "\n--".$boundary_alt."--\n";
    //==========
     
     
     
    $message.= "\n--".$boundary."\n";
     
    //=====Ajout de la pièce jointe
    $message.= "Content-Type: application/pdf;\n name=\"$scan\"\n";
    $message.= "Content-Transfer-Encoding: base64\n";
    $message.= "Content-Disposition: attachment;\n filename=\"$scan\"\n";
    $message.= "\n".$attachement."\n\n";
    $message.= "\n--".$boundary."--\n"; 
    //========== 
    //=====Envoi de l'e-mail
    mail("......@hotmail.com",$sujet,$message,$header);
     
    //==========
    ?>

  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
    Bonjour,
    il te manque un petit truc pour faire passer les fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form method="post" action="envoimail.php" name="formulaire"
    enctype= "multipart/form-data" >

  3. #3
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    Salut,

    Je pense qu'un petit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $scan = $_FILES['scan'];
    Serait pas mal non plus

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Je pense qu'on n'est pas loin
    Bonjour et d'abord merci à tous

    J'ai mis ce code partie HTML <form method="post" action="envoimail.php" name="formulaire" enctype= "multipart/form-data" >.

    Ensuite j'ai essayé avec ce code partie PHP $scan = $_FILES['scan'];

    Je recois un fichier 1 pièce(s) jointe(s) Array (0,0 Ko) et pourtant ce n'est pas le fichier que j'ai sélectionné.

    Avez-vous une solution ?


    Merci d'avance

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    Bonjour,

    J'utilise personnellement cette fonction pour l'envoi de mail sur 1 ou n destinataire avec en pièce jointe un fichier .pdf.

    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
     
    //$expediteur = $_SESSION['mail'];
    	//join un fichier pdf au mail
    	//permet d'envoyer le mail à un utilisateur ou plusieurs => $destinataire est un tableau de 1 ou n utilisateurs
    	//function appelé dans :
    	//- pdfgen_ok_peinture.php
    	function mail_validation_peinture($num_bon,$nom_bon,$expediteur,$destinataire,$nom_piece_jointe,$message)
    	{
    		$num_destinataire=count($destinataire);
    		$nom_expediteur="Alerte_validation_peinture";
     
    		for ($i=0;$i<$num_destinataire;$i++)
    		{
    			$uploaddir = './_state/';
    			$upload_file = $uploaddir .$nom_piece_jointe;
    			$attach_type =  "application/pdf";
    			$attach_name = $nom_piece_jointe;
    			$destinataires = $destinataire[$i];
    			$objet="Validation de la peinture : bon peinture N°$nom_bon";
    			//$message="Le bon peinture n°$num_bon est validé par la peinture. <br />
    			//Veuillez imprimer la pièce jointe.<br />";
     
    			if (file_exists($upload_file)) 
    			{
    				$file = fopen($upload_file, "r");
    				$contents = fread($file, filesize($upload_file));
    				$encoded_attach = chunk_split(base64_encode($contents));
    				fclose($file);
    			} 
     
    			$mailheaders  = "From: $nom_expediteur\n";
    			$mailheaders .= "Importance:1\n";
    			$mailheaders .= "Reply-To: $expediteur\n";
    			//$mailheaders .= "To: $destinataires\n";
    			$mailheaders .= "MIME-version: 1.0\n";
    			$mailheaders .= "Content-type: multipart/mixed; ";
    			$mailheaders .= "boundary=\"Message-Boundary\"\n";
    			$mailheaders .= "Content-transfer-encoding: 7BIT\n";
    			$mailheaders .= "X-attachments: $attach_name\n";
     
    			$body_top = "--Message-Boundary\n";
    			$body_top .= "Content-type: text/html;charset=ISO-8859-1\n";
    			$body_top .= "Content-transfer-encoding: 7BIT\n";
     
    			$msg_body = $body_top.$message;
     
    			$msg_body .= "\n\n--Message-Boundary\n";
    			$msg_body .= "Content-type: $attach_type; name=\"$attach_name\"\n";    
    			$msg_body .= "Content-Length: " . filesize($upload_file) . "\n";    
    			$msg_body .= "Content-transfer-Encoding: BASE64\n";
    			$msg_body .= "Content-disposition: attachment; filename=\"$attach_name\"\n\n";
    			$msg_body .= "$encoded_attach\n";
    			$msg_body .= "--Message-Boundary--\n";
     
    			mail($destinataires,$objet,$msg_body,$mailheaders);
     
    		}
    	}
    En espérant que ca t'aide

    ++

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Malheureusement ce n'est pas encore bon
    Bonjour,

    Encore une fois merci à tous.

    J'ai l'impression que le fichier n'est pas trouver par le code PHP.

    Une idée ou plutôt une question , dois-je copier le fichier sur mon serveur via FTP ? Parce quand je met le fichier PDF sur mon serveur cela fonctionne.

    Avez-vous une solution rapide pour copier le fichier qui est joint sur mon formulaire pour le transférer sur mon serveur.


    Merci d'avance

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    bonjour,

    En effet je te confirme que le fichier dois être présent sur le serveur.

    d'ailleur dans mon code je vérifie la présence du fichier sur le serveur avant envoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (file_exists($upload_file)) 
    			{
    				$file = fopen($upload_file, "r");
    				$contents = fread($file, filesize($upload_file));
    				$encoded_attach = chunk_split(base64_encode($contents));
    				fclose($file);
    			}
    ++

Discussions similaires

  1. formulaire html et php
    Par aether dans le forum Langage
    Réponses: 2
    Dernier message: 11/02/2008, 20h42
  2. [Wamp] Problème passage données d'un formulaire .Html à fichier .php
    Par lolymeupy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 05/02/2008, 15h51
  3. Affichage d'un formulaire HTML dans PHP
    Par super-java dans le forum Langage
    Réponses: 5
    Dernier message: 25/10/2007, 16h10
  4. formulaires html vers php
    Par chexna dans le forum Langage
    Réponses: 6
    Dernier message: 31/07/2006, 19h41
  5. Formulaire html retour php
    Par Alex123 dans le forum Langage
    Réponses: 11
    Dernier message: 13/06/2006, 18h52

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