Salut,
j'ai fais une fonction d'uploader de fichiers sur lesquels je verifie l'extension, tout marche bien (enfin presque), en fait je ne dois pouvoir uploader que des images, mais lorsque j'upload un .exe il passe, alors qu'avec les autres extensions, cela ne passe pas...
Pouvez-vous m'aider SVP.

Voila mon code:
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
 
//fonction d'upload de fichier la variable $allowedExt peut contenir plusieurs extension separé par un pipe
//exemple d'utilisation:
//uploadImage("upload","../upload","150000",".jpeg|.gif|.png");
function uploadImage($nomChamp,$path,$maxSizeInOctet,$allowedExt){
 
			// Taille maximum
			$MAX_FILE_SIZE = $maxSizeInOctet;
 
			//recuperation de la ou des extension acceptées
			$tab= preg_split("/\|/", $allowedExt, -1, PREG_SPLIT_NO_EMPTY);
			$nbExt = sizeof($tab);
 
			$ext = explode('|', $allowedExt, $nbExt);
 
 
			// Dossier de destination du fichier
			$folder = $path;
 
			// Variables récupérée par methode POST du formulaires
			$fileName = $_FILES[''.$nomChamp.'']['name'];
			$fileType = $_FILES[''.$nomChamp.'']['type'];
			$fileSize = $_FILES[''.$nomChamp.'']['size'];
			$fileTmp = $_FILES[''.$nomChamp.'']['tmp_name'];
 
			$extension = strrchr($fileName, ".");
 
			$auth_ext = array($ext);
 
			function isExtAuthorized($extension){
			//global $auth_ext;
				if(@in_array($extension,$auth_ext))
				{
					return true;
				}
				else
				{
					return false;
				}
			}
			// Diverses test afin de savoir si :
			// Le format de fichier correspond à notre tableau array
			if(!(isExtAuthorized($extension))){$error = 1;}
 
			// La taille du fichier n'est pas dépassée
			if($fileSize > $MAX_FILE_SIZE){$error = 2;}
 
			// Le fichier n'existe pas déjà
			if(file_exists($folder."m_".$fileName)){$error = 3;}
 
			// Si tout va bien, c'est bien déroulé
			if(copy($fileTmp,''.$folder.''.$fileName.'')) {$error = 0;}
 
			// Switch servant simplement à la gestion des erreures
			switch($error){
				case'0':
					echo("Fichier correctement envoyé.");
					break;
				case'1':
					echo("Problème format de fichier incorrecte.");
					break;
				case'2':
					echo("Problème fichier trop volumineux.");
					break;
				case'3':
					echo("Problème le fichier déjà existant.");
					break;
			}
 
}