Comparer l'extension d'une url avec un tableau

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par tryan, 13 Janvier 2010.

  1. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Bonsoir,

    J'essaye de comparer l'extension d'une url insérée dans un formulaire avec des extensions contenues dans un tableau mais ça buggggg et ça m'énerve :? !!!

    Dans mon code, $lechamp5 correspond à une url.
    $suffixe correspond à l'extension de l'url.
    Code:
    else if {...}
    else if(!empty($lechamp5)){
    	//on verifie l'extention du fichier
    	$ok = ereg("^(.+)\.(.+)$", $lechamp5, $items);
    	$suffixe=$items[2] ;//ici l'extension du fichier
    	//Extensions autorisées
    	$extensions = array("png","gif","jpg","jpeg","JPG","bmp");
    	//On boucle
    	foreach ($extensions AS $variable_au_pif)
    	{
    		//Si l'extension de l'url est différente  des extensions du tableau
    		if($suffixe != $variable_au_pif)
    		{ 
    			$alerte5 ='<div class="erreur"><a name="ok"></a>L\'extension '.$suffixe.' n\'est pas autorisé!</div>';
    		}
    	}
    }
    else if {...}
    
    Quelque soit l'extension, bonne ou mauvaise, j'ai toujours mon erreur "$alerte5" qui s'affiche et je ne pige pas pourquoi ..?

    Un petit coup de neurone serait bienvenu :mrgreen:
    Merci
     
  2. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 774
    J'aime reçus:
    0
    Peut-être au niveau de la fonction in_array.
    Ca devrait le faire.
    Tu peux aussi te servir de parse_url.
     
  3. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Merci de ta réponse Julia41 :D ,

    Je viens de tester avec la fonction in_array et ça fonctionne (youpiii^^).
    Code:
    else if {...}
    else if(!empty($lechamp5)){
       //on verifie l'extention du fichier
       $ok = ereg("^(.+)\.(.+)$", $lechamp5, $items);
       $suffixe=$items[2] ;//ici l'extension du fichier
       //Extensions autorisées
       $extensions = array("png","gif","jpg","jpeg","JPG","bmp");
    		//$comparaison renvoie 1 (TRUE) si l'extension est trouvé dans le tableau
    		$comparaison=in_array($suffixe, $extensions);
    		if ($comparaison != 1) 
    		{
    			$alerte5 ='<div class="erreur"><a name="ok"></a>L\'extension '.$suffixe.' n\'est pas autorisé!</div>';
    		}
    }
    else if {...}
    
    Cependant ... si l'extension est OK (ne retourne pas d'erreur), mon code ne veut plus passer au else if {...} suivant :x (saloperie de PHP) et la je sèche encore !!
    Une suggestion ?
     
  4. FloBaoti
    FloBaoti WRInaute impliqué
    Inscrit:
    30 Avril 2006
    Messages:
    640
    J'aime reçus:
    0
    Mieux structurer ton code ?!

    Si tu passes dans une conditon, forcément tu passes pas dans le "else" de cette condition, sinon y'a plus aucun interet.
    Rien à voir avec PHP là, c'est de l'algo.
     
  5. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Effectivement ... je m'en suis rendu compte en déplacent une partie du code en dehors des conditions pour y laisser justement et uniquement les conditions elles mêmes :roll:

    Allé, je m'auto flagelle sur ce coup la ^^.

    Merci de ta réponse
     
  6. Rod la Kox
    Rod la Kox WRInaute accro
    Inscrit:
    24 Juin 2008
    Messages:
    2 780
    J'aime reçus:
    0
    A la place de
    Code:
    //$comparaison renvoie 1 (TRUE) si l'extension est trouvé dans le tableau
    		$comparaison=in_array($suffixe, $extensions);
    		if ($comparaison != 1) 
    		{
    			$alerte5 ='<div class="erreur"><a name="ok"></a>L\'extension '.$suffixe.' n\'est pas autorisé!</div>';
    		}
    
    Tu fais :
    Code:
    //$comparaison renvoie 1 (TRUE) si l'extension est trouvé dans le tableau
    		if (!(in_array($suffixe, $extensions)))$alerte5 ='<div class="erreur"><a name="ok"></a>L\'extension '.$suffixe.' n\'est pas autorisé!</div>';
    
    C'est pareil et moins chargé.

    ;-)
     
  7. bproductiv
    bproductiv WRInaute accro
    Inscrit:
    27 Décembre 2004
    Messages:
    3 677
    J'aime reçus:
    0
    ta méthode pour récupérer fonctionne toujours sui un fichier à un point dans son nom? j'en doute..teste avec "mon.fichier.test.gif" par exemple... pour récupérer l'extension je partirai du bout de la chaine pour trouver le point.
     
  8. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Merci Rod la Kox et effectivement, c'est plus mieux :mrgreen: .
    @bproductiv : cette méthode fonctionne également si le fichier contient 1 ou plusieurs points. J'ai testé avec une image nommée "mon.fichier.test.gif" et il me trouve bien "gif".
     
  9. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 774
    J'aime reçus:
    0
    Et pour récupérer l'extension, tu as la fonction pathinfo qui te sort un jolie array
    Code:
    $var = 'wfkdjklsd.plop.avi';
    $f = pathinfo($var);
    return $f['extension'];
    et un peu plus performant (je pense)
    Code:
    return pathinfo($var, PATHINFO_EXTENSION);
    (pas testé si ça retourné un array ou une string
     
Chargement...
Similar Threads - Comparer extension tableau Forum Date
Comparer une variable dans IF Développement d'un site Web ou d'une appli mobile 25 Mars 2022
Comparer un array avec plusieurs valeurs Développement d'un site Web ou d'une appli mobile 19 Novembre 2021
Comparer le nombre de visiteur qui viennent de Google.fr et Google.com Débuter en référencement 2 Février 2017
Comment comparer les offres de référencement? Débuter en référencement 29 Janvier 2015
Extraire un fichier robots.txt et comparer le résultat Développement d'un site Web ou d'une appli mobile 12 Juillet 2014
Est-il légal de se comparer à ses concurrents en leur faisant sa la mauvaise pub ? Droit du web (juridique, fiscalité...) 30 Mai 2013
Se comparer avec un concurrent ? Droit du web (juridique, fiscalité...) 27 Avril 2013
Quels outils pour comparer le référencement entre deux sites ? Débuter en référencement 25 Avril 2013
Comparer Pages vues/Entrées google Google Analytics 15 Octobre 2012
Comment se calcule le CPC. Comparer avec la concurrence. AdWords 10 Juin 2012
Tester, comparer les performances d'un VPS, VDS, cloud et dédié Administration d'un site Web 21 Juin 2011
comparer l’audience de deux mots clef Débuter en référencement 6 Février 2011
Comparer des dossiers sur ftp et enregistrement en BD ? Développement d'un site Web ou d'une appli mobile 16 Octobre 2010
Comparer les performances des annonces / mots clés AdWords 3 Septembre 2010
Comparer Google Analytics et Awstats Google Analytics 9 Juin 2010
problème pour comparer les statistiques de certaines pages seulement Google Analytics 5 Novembre 2009
comparer les résultats de Google vs Bing Référencement Bing 2 Juin 2009
[logiciel] comparer et suivre son positionnement Demandes d'avis et de conseils sur vos sites 3 Octobre 2008
Comparer des dates fichier txt et base de donné Développement d'un site Web ou d'une appli mobile 12 Mars 2008
Nouveauté Analytics: comparer plusieurs analyses sur 1 graph Google Analytics 13 Décembre 2007