Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1148 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Upload: interdire certains types de fichiers [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Upload: interdire certains types de fichiers [RESOLU]

n°1316441
tarte en p​ion
Posté le 01-03-2006 à 19:05:23  profilanswer
 

Bonjour, j'ai un formulaire d'upload et un fichier qui le traite que voici. Je veux interdire certains types de fichier (les fichiers .php, php3, php4 etc...). Chaque fois que j'uploade un fichier il m'annonce qu'il n'est pas d'un type autorisé. Quelqu'un pourrait me dire que mettre à la place de

Code :
  1. // on vérifie maintenant l'extension
  2.     $type_file = $_FILES['fichier']['type'];
  3.     if( !strstr($type_file, 'mp3') && !strstr($type_file, 'txt') )
  4.     {
  5.         exit("Le fichier n'est pas d'un type autorisé." );
  6.     }

pour interdire ces fichiers? merci!
 

Code :
  1. <?php
  2. $user = $HTTP_POST_VARS['user'];
  3. if( isset($_POST['upload']) ) // si formulaire soumis
  4. {
  5.     $content_dir = '../'.$user.'/fichiers/'; // dossier où sera déplacé le fichier
  6.     $tmp_file = $_FILES['fichier']['tmp_name'];
  7.     if( !is_uploaded_file($tmp_file) )
  8.     {
  9.         exit("Le fichier est introuvable" );
  10.     }
  11.     // on vérifie maintenant l'extension
  12.     $type_file = $_FILES['fichier']['type'];
  13.     if( !strstr($type_file, 'mp3') && !strstr($type_file, 'txt') )
  14.     {
  15.         exit("Le fichier n'est pas d'un type autorisé." );
  16.     }
  17.    
  18.     // on copie le fichier dans le dossier de destination
  19.     $name_file = $_FILES['fichier']['name'];
  20.     if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
  21.     {
  22.         exit("Impossible de copier le fichier dans $content_dir" );
  23.     }
  24.     echo "Le fichier a bien été uploadé";
  25. }
  26. ?>


Message édité par tarte en pion le 02-03-2006 à 17:01:27
mood
Publicité
Posté le 01-03-2006 à 19:05:23  profilanswer
 

n°1316449
newneo2001
Posté le 01-03-2006 à 19:13:42  profilanswer
 

alors pour $_FILES['fichier']['type'] ca te renvoit le type mime du fichier
 
voici une petite liste :
$allowed_types_files = array(
                                        "application/x-gzip-compressed",
                                        "application/x-zip-compressed" ,
                                        "application/x-tar",
                                        "image/bmp",
                                        "image/gif",
                                        "image/pjpeg",
                                        "image/jpeg",
                          "text/richtext",
     "text/plain",
                          "application/pdf",
                                        "application/msword",
);
 
apres tu fais ca :
 
if (!in_array($_FILES['fichier']['type'], $allowed_types))
 die ('type mime incorrect');
 
et voila


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1316452
h4rold
Posté le 01-03-2006 à 19:15:44  profilanswer
 

fait gaffe cest pas lextension brut, par exemple pour jpeg cest image/pjpeg
donc fait toi un petit formulaire qui envoie le fichier et qui taffiche la variable pour savoir le type et apres tu pourras verifier les bon types :)
Par contre fait gaffe a ta place je nautoriserait que certaines fichiers et non l'inverse. :)

n°1316458
newneo2001
Posté le 01-03-2006 à 19:24:16  profilanswer
 

H4rold a raison, c'est un bon point à préciser en sécurité la règle a appliquer c'est :
 
Tout ce qui n'est pas autorisé est interdit
 
Avec mon code c'est ce que je fais, tu vérifie que le type est bien autorisé.
 
++


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1316461
h4rold
Posté le 01-03-2006 à 19:25:29  profilanswer
 

newneo2001 a écrit :

H4rold a raison, c'est un bon point à préciser en sécurité la règle a appliquer c'est :
 
Tout ce qui n'est pas autorisé est interdit
 
Avec mon code c'est ce que je fais, tu vérifie que le type est bien autorisé.
 
++


 
toutafait daccord avec toi. Ton codes est niquel en plus :d

n°1316464
newneo2001
Posté le 01-03-2006 à 19:29:54  profilanswer
 

merci :d


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1316470
tarte en p​ion
Posté le 01-03-2006 à 19:39:12  profilanswer
 

merci pour votre aide, je vais voir ce que ça donne! :)

n°1316480
tarte en p​ion
Posté le 01-03-2006 à 19:52:05  profilanswer
 

J'ai mis:

Code :
  1. // on vérifie maintenant l'extension
  2.     $type_file = $_FILES['fichier']['type'];
  3.     $allowed_types_files = array(
  4.            "application/x-gzip-compressed",
  5.            "application/x-zip-compressed" ,
  6.            "image/bmp",
  7.            "image/gif",
  8.            "image/pjpeg",
  9.            "image/jpeg",
  10.            "text/plain",
  11.            "application/pdf",
  12.            "audio/mpeg3",
  13.            "audio/x-mpeg3",
  14.            "audio/mp3",
  15. );
  16. if (!in_array($_FILES['fichier']['type'], $allowed_types))
  17. die ('type mime incorrect');


Mais quand j'uploade un .txt ça me mets le message d'erreur...


Message édité par tarte en pion le 01-03-2006 à 19:52:44
n°1316491
newneo2001
Posté le 01-03-2006 à 20:04:16  profilanswer
 


 $allowed_types_files et  $allowed_types,
 
met la même variable ;)
 
tout à l'heure je me suis trompé parce que je t'ai copié le code pris de 2 endroits différents dans mes scripts


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1316517
tarte en p​ion
Posté le 01-03-2006 à 20:26:50  profilanswer
 

impec, merci!

mood
Publicité
Posté le 01-03-2006 à 20:26:50  profilanswer
 

n°1317050
newneo2001
Posté le 02-03-2006 à 15:06:40  profilanswer
 

ca serait bien de mettré [RESOLU] dans le titre quand c'est fait ;)
++


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Upload: interdire certains types de fichiers [RESOLU]

 

Sujets relatifs
comparer des fichiers XML[Résolu] Compiler un programme utilisant Berkeley DB
[resolu]question de gros nul...désolé $_POST et $_GET[RESOLU] GD : renommer une image
[RESOLU]probleme de recuperation des lignes d'une requete mysql[resolu] cadre de sélection sur une image
Upload: variable du dossier de destination [RESOLU][Résolu] Problème sur Dreamweaver pour formulaire
[résolu]Ne pas enregistrer les précédents éléments saisis 
Plus de sujets relatifs à : Upload: interdire certains types de fichiers [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR