expression reguliere
			
		
	 
	
	
		Slt tlm,
je voudrais charger des images qui ne sont que des JPG. Donc les extensions possibles sont: 
jpg, jpeg, JPG, JPEG.
J'ai donc fais ca comme code:
$dossier = opendir ($dir);
while ($fichier = readdir ($dossier)) {
	if (ereg("^".$_GET['f']."\.(jpg|jpeg)*$i",$fichier)) {
		$image = $fichier;
		$image_existe = 1;
	}
}	
if($image_existe != 1) $image = "image.jpg"; //image de secours!
Le probleme vient de l'expression reguliere, il me charge aussi les png!!
Comment dois-je faire mon expression reg?
Merci bp!
+++	
 
	
	
		Il y a trois problèmes avec ton code.
  - l'usage de ereg est erronée
  - exécution possible par regex injection
  - l'extension ne détermine pas le type de fichier
Il est particulièrement déconseiller d'utiliser « l'extension » du nom de fichier, puisque sous des systèmes bien pensés, c'est superflut.
si tu tiens absolument à déterminer le type de fichier via l'extension (et donc risquer des injection de code :
ergegi('^.*\.(jpeg|jpg)$', $fichier) ;	
			Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
				
				
		
			
		
	 
	
	
		OK merci ca marche bien,
en ce qui concerne les injections, ce n'est pas grave, c'est un script pour moi.
+++	
	
			
		
	 
	
	
		Personnelement j'aurais utilisé la fonction glob :)	
			echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
		
			
		
	 
	
		le 02/05/2006 à 19:53
		Bzh
	 
	
		Quel est le danger d'utiliser l' extention pour définir le type d'un fichier ???
Si tu arrives à exécuter un exécutable ayant comme extention jpeg, tu m'appels 

...	
 
	
	
		
gcc -o toto.jpeg toto.c
chmod +x toto.jpeg
./toto.jpeg
 
			Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
		
			
		
	 
	
		le 02/05/2006 à 21:49
		Bzh
	 
	
		Ouaip oui ch'ui d'accord !
Mais en pratique ??? Tu fais comment pour l'exécuter  ????	
	
			
		
	 
	
	
		Le problème que je pointait n'était pas un problème de sécurité, mais un problème d'appriori de développeur : un fichier possède une extention, et cette extension renseigne sur le type de fichier.
En ce qui concerne le problème de sécurité, je me suis un peu planté. En effet, ce qui me chiffonait était la variable injectée dans la regexp. Or, j'étais convainqu (mais je n'ai pas retrouvé la doc), que l'on peut exécuter du code directement depuis une expression régulière.	
			Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
		
			
		
	 
	
		le 03/05/2006 à 00:15
		bibi
	 
	
		le probleme des extensions comme l'a démontré Lupus est que ca a été intégré par Windows car sous Linux, cela n'existe pas. Donc il faut trouver une autre methode.	
			commit suicide
		
			
		
	 
	
		le 03/05/2006 à 01:11
		Bzh
	 
	
		Oui, mais même sous Linux il n'est pas possible de le rendre exécutable directement, de l'exterieur !
Lorsque php sauvegardera ton image, il est évident qu'il ne le rendra pas exécutable.
Heureusement d'ailleur...	
			
				
		
	
	Ecrire un message
	
	Votre message vient d'être créé avec succès.
	
 
	BB-Code
	
		Pour insérer une URL clickable
		
		Pour insérer une adresse E-mail
		
		Pour annoter
		
		Pour écrire du code
		
		Pour faire un lien vers une fonction PHP
		
		Pour écrire du texte préformaté
		
		Pour écrire du texte en gras
		
		Pour écrire du texte en italique
		
		Pour écrire du texte souligné
		
		Pour écrire du texte barré
		
		Pour écrire un titre principal
		
		Pour écrire un titre secondaire
		
		Pour écrire une liste
		
	 
 
	Smiley
	
		
				
							
				:bond:
				 
			 
						
				:boxe:
				 
			 
						
				:bsmile:
				 
			 
						
				:bump:
				 
			 
						
				:clap:
				 
			 
							 
				
							
				:coeur:
				 
			 
						
				:cool:
				 
			 
						
				:cry:
				 
			 
						
				:eek:
				 
			 
						
				:evil:
				 
			 
							 
				
							
				:fleur:
				 
			 
						
				:fou2:
				 
			 
						
				:fou:
				 
			 
						
				:grin:
				 
			 
						
				:grrr:
				 
			 
							 
				
							
				:hammer:
				 
			 
						
				:hippy:
				 
			 
						
				:hum:
				 
			 
						
				:idee2:
				 
			 
						
				:idee:
				 
			 
							 
				
							
				:kdo:
				 
			 
						
				:king:
				 
			 
						
				:ko:
				 
			 
						
				:lol:
				 
			 
						
				:love2:
				 
			 
							 
				
							
				:love:
				 
			 
						
				:mad:
				 
			 
						
				:maitre:
				 
			 
						
				:noel:
				 
			 
						
				:oops:
				 
			 
							 
				
							
				:raa:
				 
			 
						
				:razz:
				 
			 
						
				:roll:
				 
			 
						
				:sad:
				 
			 
						
				:skull:
				 
			 
							 
				
							
				:smile:
				 
			 
						
				:timide:
				 
			 
						
				:trink:
				 
			 
						
				:vice:
				 
			 
						
				:vomi:
				 
			 
							 
				
							
				:wink:
				 
			 
						
				:zzz:
				