IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Le filtrage et l'échappement des données en PHP 5 : documentation de la technique du Poka-Yoké

Date de publication : 5 juin 2007


IV. DVP_HTTPUploadFilter
IV-A. Propriétés "protected"
IV-B. Constantes
IV-C. Méthodes "private"
cleanString()
IV-D. Méthodes "protected"
filterFile()
inArray()
IV-E. Méthodes "public"
IV-E-1. Les filtres
filterArchive()
filterDocument()
filterImage()
filterMP3()
filterPDF()
filterScript()
filterText()
filterAnyType()
IV-E-2. Les getteurs
getFormattedSize()
getMime()
getName()
getRawSize()


IV. DVP_HTTPUploadFilter

DVP_HTTPUploadFilter hérite de DVP_DataFilter.

info L'extension PHP fileinfo est nécessaire au bon fontionnement de cette classe (gestion fiable des types MIME).

IV-A. Propriétés "protected"

Intérêt général :
  • destination : Le chemin système de destination ;
  • finfo : L'objet Finfo utilisé pour contrôler le type MIME des fichiers ;
  • refusedData : Un Array des fichiers refusés par DVP_HTTPUploadFilter.
Groupes de valeurs autorisées :
  • allowedMimes : PDF + MP3 + TEXT ;
  • allowedMimeGroups : ARCHIVES + DOCUMENTS + IMAGES + SCRIPTS ;
  • allAllowedMimes : allowedMimes + allowedMimeGroups.
Format de nombres :
  • decimalsSeparator : Séparateur de décimales (en Français, il s'agit de la virgule ; en Anglais, c'est le point) ;
  • thousandsSeparator : Séparateur de milliers (en Français, il s'agit de l'espace ; en Anglais, c'est la virgule).
info Les deux dernières variables présentées ici sont déclarées "final". Elles ne peuvent pas etre modifiées en-dehors du constructeur de la classe.

IV-B. Constantes

Résultat de l'opération de filtrage :
  • FILTERED_ACCEPTED
  • FILTERED_REFUSED
Configuration de l'extension fileinfo :
  • MAGIC_FILE : Le chemin d'accès au ficher "magique" ;
  • FILEINFO_MODE : Le mode d'utilisation du fichier "magique" (constantes du scope global : FILEINFO_MIME ou FILEINFO_NONE).
Types MIME suportés :
  • MIME_MP3
  • MIME_PDF
  • MIME_TEXT
  • MIME_ARCHIVES
  • MIME_DOCUMENTS
  • MIME_IMAGES
  • MIME_SCRIPTS
Tailles des fichiers par type MIME :
  • SIZE_MP3
  • SIZE_PDF
  • SIZE_TEXT
  • SIZE_ARCHIVES
  • SIZE_DOCUMENTS
  • SIZE_IMAGES
  • SIZE_SCRIPTS
Valeurs par défaut :
  • DEFAULT_SEPARATOR_DECIMALS = ','
  • DEFAULT_SEPARATOR_THOUSANDS = ' '
Unités pour le formatage des tailles de fichiers :
  • UNIT_OCTET
  • UNIT_KILO_OCTET
  • UNIT_MEGA_OCTET
  • UNIT_GIGA_OCTET

IV-C. Méthodes "private"


cleanString()

Cette méthode n'est utilisée qu'en interne. Il n'y a pas de raison de permettre au développeur de l'utiliser.

Cette méthode est finale, elle ne peut être surchargée (même si on la définit en protected ou public).

Paramètres :
  • string : Le nom de fichier à formater.
Exceptions :
  • aucune

IV-D. Méthodes "protected"


filterFile()

Cette méthode permet de vérifier la validité d'un fichier en fonction de son type et de sa taille. Si les vérifications sont couronnées de succès, le fichier est automatiquement renommé et déplacé hors du répertoire temporaire du serveur Web.

Paramètres :
  • field : Le champ décrivant le fichier à vérifier ;
  • intendedMime : Le type du fichier ;
  • intendedMaxSize : La taille maximum du fichier.
Exceptions :
  • DVP_AbsentOffsetException
  • DVP_FileSizeException
  • DVP_TypeException
  • DVP_ValueException

inArray()

Cette méthode sert à déterminer si une chaîne est contenue dans n'importe quelle chaîne d'un tableau.

Paramètres :
  • needle : L'aiguille ;
  • haystack : La meule de foin.
Exceptions :
  • DVP_TypeException

IV-E. Méthodes "public"


IV-E-1. Les filtres


filterArchive()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les archives compressées.

Paramètres :
  • field : Le champ décrivant le fichier à vérifier ;
  • size (par défaut = DVP_HTTPUploadFilter::SIZE_ARCHIVES).
Exceptions :
  • DVP_AbsentOffsetException
  • DVP_FileSizeException
  • DVP_TypeException
  • DVP_ValueException
Exemple d'utilisation :
$_FILES->filterArchive('documents'); // "documents" correspond à un champ du formulaire destiné à une archive compressée

filterDocument()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les documents texte.

Paramètres :
  • field : Le champ décrivant le fichier à vérifier ;
  • size (par défaut = DVP_HTTPUploadFilter::SIZE_DOCUMENTS).
Exceptions :
  • DVP_AbsentOffsetException
  • DVP_FileSizeException
  • DVP_TypeException
  • DVP_ValueException

filterImage()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les images.

Paramètres :
  • field : Le champ décrivant le fichier à vérifier ;
  • size (par défaut = DVP_HTTPUploadFilter::SIZE_IMAGES).
Exceptions :
  • DVP_AbsentOffsetException
  • DVP_FileSizeException
  • DVP_TypeException
  • DVP_ValueException

filterMP3()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les fichiers MP3.

Paramètres :
  • field : Le champ décrivant le fichier à vérifier ;
  • size (par défaut = DVP_HTTPUploadFilter::SIZE_MP3).
Exceptions :
  • DVP_AbsentOffsetException
  • DVP_FileSizeException
  • DVP_TypeException
  • DVP_ValueException

filterPDF()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les documents PDF.

Paramètres :
  • field : Le champ décrivant le fichier à vérifier ;
  • size (par défaut = DVP_HTTPUploadFilter::SIZE_PDF).
Exceptions :
  • DVP_AbsentOffsetException
  • DVP_FileSizeException
  • DVP_TypeException
  • DVP_ValueException

filterScript()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les scripts.

Paramètres :
  • field : Le champ décrivant le fichier à vérifier ;
  • size (par défaut = DVP_HTTPUploadFilter::SIZE_SCRIPTS).
Exceptions :
  • DVP_AbsentOffsetException
  • DVP_FileSizeException
  • DVP_TypeException
  • DVP_ValueException

filterText()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les fichiers de texte brut.

Paramètres :
  • field : Le champ décrivant le fichier à vérifier ;
  • size (par défaut = DVP_HTTPUploadFilter::SIZE_TEXT).
Exceptions :
  • DVP_AbsentOffsetException
  • DVP_FileSizeException
  • DVP_TypeException
  • DVP_ValueException

filterAnyType()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour le type MIME du fichier concerné.

Paramètres :
  • field : Le champ décrivant le fichier à vérifier ;
  • size (par défaut = NULL).
Exceptions :
  • DVP_AbsentOffsetException
  • DVP_FileSizeException
  • DVP_TypeException
  • DVP_ValueException

IV-E-2. Les getteurs

info Les méthodes "get..." ne fonctionnent qu'avec les fichiers filtrés.

getFormattedSize()
Retourne une taille formattée de manière lisible.

Paramètres :
  • field Le champ décrivant le fichier.
Exceptions :
  • aucune

getMime()
Retourne le type MIME d'un fichier.

Paramètres :
  • field Le champ décrivant le fichier.
Exceptions :
  • DVP_AbsentOffsetException
  • DVP_TypeException

getName()
Retourne le nom d'un fichier.

Paramètres :
  • field Le champ décrivant le fichier.
Exceptions :
  • DVP_AbsentOffsetException
  • DVP_TypeException

getRawSize()
Retourne la taille d'un fichier (en octets).

Paramètres :
  • field Le champ décrivant le fichier.
Exceptions :
  • aucune
 

Valid XHTML 1.1!Valid CSS!

Copyright © 2006 Guillaume Rossolini. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.