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 :

Problème gestion formulaire et repertoire destination


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 20
    Par défaut Problème gestion formulaire et repertoire destination
    Bonjour,
    j'ai un souci avec mon code, voila la reponse a ma requete.... (il né pas fini je le test par bout et la j'ai une erreur...)
    Ca marche pour mes 2 1er chois (multiformulaire : anafi et mathi)
    mais pr mon 3 eme choix, fait expres avec des accents et guillemets simple ca marche pas... pourtant mon repertoire existe...
    ma question pourrait etre alors celle ci : est ce que ma variable de destination, etant donnée qu'elle contient des guillemets ou accents ne marche pas a cause de cela, ou des espaces ?? ?
    Merci pour votre aide


    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Warning: move_uploaded_file(upload/Financement de l\'entreprise et économie/essai.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in D:\www\mag2\upload.php on line 48
    
    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'c:/wamp/tmp\php2B.tmp' to 'upload/Financement de l\'entreprise et économie/essai.txt' in D:\www\mag2\upload.php on line 48
    Echec de l'upload !

    Voila mes fichiers:
    index.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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    </head>
     
    <body>
     
    <form method="POST" action="upload.php" enctype="multipart/form-data">
         <p>
         <!-- On limite le fichier à 100Ko -->
         <input type="hidden" name="MAX_FILE_SIZE" value="100000">
      </p>
      <table width="695" border="1">
        <tr>
          <td width="166" height="31">Fichier :</td>
          <td width="258"><input type="file" name="avatar" /></td>
          <td width="153">&nbsp;</td>
          <td width="90">&nbsp;</td>
        </tr>
        <tr>
          <td>Description : </td>
          <td><input name="desc" type="text" value="" /></td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>Mati&egrave;re : </td>
          <td><select name="mon_champ">
            <option>Anafi</option>
            <option>Matfi</option>
            <option>Financement de l'entreprise et économie</option>
        </select>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input type="submit" name="envoyer" value="Envoyer le fichier" /></td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>  
    <p>&nbsp;</p></td>  </form>
    </body>
    </html>
    et upload.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
    <?php
     
    $mon_champ = isset($_POST['mon_champ']) ? $_POST['mon_champ'] : '';      //type de cours pour selection du fichier
    $desc = isset($_POST['desc']) ? $_POST['desc'] : '';                     //description du fichier
     
     
    $dossier = "upload/".$mon_champ."/";
    $fichier = basename($_FILES['avatar']['name']);
    $taille_maxi = 100000;
    $taille = filesize($_FILES['avatar']['tmp_name']);
    $extensions = array('.txt', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['avatar']['name'], '.'); 
     
    //début enregistrement dans la base de donnée
     
    $chemin = "upload/".$mon_champ."/".$fichier;          //chemin complet de stockage de du chemin du fichier..
     
    //ici je mettrais la requete sql complete pr l'enregistrement dans la base de $desc (description du cours) $mon_champ (type de matiere)  $chemin (chemin stockage cours)
     
     
     
    //Début des vérifications de sécurité...
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
         $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
    }
    if($taille>$taille_maxi)
    {
         $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...
         $fichier = strtr($fichier, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
         if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
              echo 'Upload effectué avec succès !';
    		  echo $mon_champ;
    		  echo $desc;
    		  echo $chemin;
    		  echo "<a href='$chemin'>télécharger</a><br> ";         //voila comment récuperer le lien !! j'ai compris, ca va aller alors !
     
         }
         else //Sinon (la fonction renvoie FALSE).
         {
              echo 'Echec de l\'upload !';
     
         }
    }
    else
    {
         echo $erreur;
    }
    ?>

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 20
    Par défaut
    Re
    J'ai essayé en virant l ' et sa marche...
    Alors ma question est comment protéger cet accent dans mon code...
    de plus j'ai creer un fichier a charger par exemple essai l'amérique, et comme il y a un accent, ben ca marche mais...... mon fichier copier ne s'appelle plus que amérique.txt

    comment protéger encore l'accent et permetre de conserver le nom entier du fichier.. ??
    Merci

  3. #3
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    regarde du coté de stripslashes() et magicquotes()
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 20
    Par défaut
    étant debutant j'ai du mal a savoir comment ca marche
    Un petit exemple ??

  5. #5
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier=stripslashes($fichier) ;

    ou
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $fichier=magicquotes($fichier) ;

    Mais la j'ai un doute , fais un echo $fichier quelque part et dis moi ce que tu obtien ?
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 20
    Par défaut
    Ok je testerai demain merci bcp (la j'ai pas le temps) et je te dirais ce que j'obtiens.

Discussions similaires

  1. problème "Gestion de photos par formulaire"
    Par mcharmat dans le forum IHM
    Réponses: 10
    Dernier message: 13/05/2008, 16h47
  2. Réponses: 7
    Dernier message: 19/10/2004, 17h12
  3. [STRUTS] problème de formulaire
    Par ultimax dans le forum Struts 1
    Réponses: 5
    Dernier message: 09/07/2004, 16h55
  4. [Struts] Problème de formulaire(s) ...
    Par djoukit dans le forum Struts 1
    Réponses: 8
    Dernier message: 11/03/2004, 00h48
  5. Réponses: 12
    Dernier message: 24/09/2003, 16h26

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