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 :

[Mail] Enctype et variables PHP


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Mail] Enctype et variables PHP
    Bonjour,
    Voila mon problème.
    Comme beaucoup j'ai un formulaire que l'utilisateur doit remplir et lorsqu'il clique sur envoyer cela appelle un fichier .php pour récupérer les valeurs des champs et me les envoyer par mail.
    Le problème est que je voudrais que l'utilisateur puisse m'envoyer egalement des fichiers via un repertoire d'upload. Ce que je sais est qu'il faut introduire : enctype="multipart/form-data" dans mon formulaire pour pouvoir uploader des fichiers, mais ce que je ne comprends pas c'est que lorsque je rajoute cette ligne, mes variables $_POST ou $_FILES sont vides.
    J'ai simplifié mon code pour cibler le problème.
    Code du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html>
    <head><title>Form</title></head>
    <body>
    <form name="test" method="POST" action="upload.php" enctype="multipart/form-data">
    Nom : <input name="nom" size="20" type="text"><br>
    Prénom : <input name="prenom" size="20" type="text"><br>
    <input value="OK" type="submit">
    </form>
    </body>
    </html>
    Et voici le code de mon fichier php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php 
    $prenom=$_POST['prenom'];
    $nom=$_POST['nom'];
    print("<center>Bonjour $prenom $nom</center>");
    print_r($_POST);
    ?>
    En résumer,
    sans ma ligne enctype="multipart/form-data" mon print_r($_POST); me donne les bonnes valeurs.
    avec ma ligne enctype="multipart/form-data" mon print_r($_POST); est vide.
    J'utilise Tomcat 5 et PHP 5.1.2, ce code est pour un Intranet.
    Merci d'avance.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Coucou !

    Personne ne peut m'aider ... je suis en galère pourtant

    Pourrait on m'indiquer le chemin à defaut d'une solution ou un lien si le sujet à deja été traité.


    Merci d'avance.

    @+, Patrice.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 163
    Points : 45
    Points
    45
    Par défaut
    Pour finir as-tu la solution ?
    car moi j'ai le même problème ...
    merci

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Je me perds dans ta question, car tu parles de FILES et de Mails,
    et dans tes exemples il n'y a rien de tout cela ??

    Je vais faire unpetit dodo

    Alors en attendant, voila ce que j'ais fais hier sur ce forum pour une autre demande,

    Son probleme capter un texte (marque de voiture),
    et uploader une image (sigle de l'auto) qu'il mettait dans le répertoire sigle/

    Le PHP de saisie en fait un HTML
    ajout.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
     
    <html><body>
    <br />
    <h2><p align=center>ajouter une marque de voiture</p></h2><br />
    <p align=center>
    <form action='ajoutmarque.php' method='post' enctype='multipart/form-data' name='form1'>
    <b>Marque:</b><br>
    <input type="text" name="marque" id="marque" size="64"><br><br>
    <input type="hidden" name="MAX_FILE_SIZE" value="40000" />
    <br />
    <b>Sigle:</b><br />
    <b>  Attention vos images doivent imperativement avoir</b><br />
         TAILLE 100 x 100 poid maximum 60 Kilo Octets ...<br />
    <input type="file" name="Limgx" /><br />
    <input type="submit"  value="Envoyer" /> 
    <br /></form>
    <br /></p>
    </body></html>
    Données reçues dans le PHP
    ajoutmarque.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
     
    <?php
    $hauteur_max="100";
    $largeur_max="100"; 
    $poid_max="60000";
    $destin="sigle/"; 
     
    if (isset($_POST["marque"])) $marque=trim($_POST["marque"]);
        else $marque="";
     
    $taille = getimagesize($_FILES['Limgx'][tmp_name]);
    $h_i = $taille[1]; 
    $w_i = $taille[0]; 
    $poid = filesize($_FILES['Limgx']['tmp_name']); 
    $message="";
    $imtype = 0;
    if(substr($_FILES['Limgx'][name],-3) =="jpg") {$imtype = 1;$ext="jpg";}
    if(substr($_FILES['Limgx'][name],-3) =="png") {$imtype = 2;$ext="png";}
    if(substr($_FILES['Limgx'][name],-3) =="gif") {$imtype = 3;$ext="gif";}
     
    if ($h_i!=$hauteur_max || $w_i!=$largeur_max) $message=" l image n est pas au format 120 * 120 elle est de ".$w_i."   ".$h_i." ";
    if ($poid>$poid_max) $message=" l image est trop lourde ... 60 Ko maxi";
     
    if ($h_i==$hauteur_max && $w_i==$largeur_max && $poid<=$poid_max && $message=="")
     {
      // === on supprime les accents et les espaces du nom de l'image 
      $_FILES['Limgx']['name'] = strtr($_FILES['Limgx']['name'],  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",   
       "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");  
      // === on supprime les espaces
      $imagez=str_replace(" ","_",$_FILES['Limgx']['name']);
      $imagez=strtolower($imagez); 
      // == faire le nom
      $newnom=$imagez;
     
      if (file_exists($destin.$newnom))
         {
            $message="L image est déjas sur le site web";
         }
         else
          {
          copy($_FILES['Limgx']['tmp_name'],$destin.$newnom);
          $message="L image ".$newnom." est copiee en ".$destin." ";
         }
       }
    echo ("<br />".$message."<br />");
    echo ("".$marque."<br />");
    echo ("Type image ".$imtype." ".$ext."<br /> ");
    ?>

Discussions similaires

  1. Fonction mail() et variable PHP.
    Par Mck698 dans le forum Langage
    Réponses: 2
    Dernier message: 06/06/2012, 15h02
  2. [Mail] Formatage de variable php ?
    Par TheBananier dans le forum Langage
    Réponses: 2
    Dernier message: 07/12/2007, 11h05
  3. [Mail] mailer un tableau avec des variable php
    Par ben_skywalker dans le forum Langage
    Réponses: 2
    Dernier message: 09/08/2007, 18h45
  4. [Applet] récupérer une variable PHP ?
    Par Shiryu44 dans le forum Applets
    Réponses: 10
    Dernier message: 22/03/2005, 11h39
  5. [PHP-JS] variable php à récupérer en JS
    Par mussara dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/01/2005, 16h34

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