domdas Posted December 22, 2009 Share Posted December 22, 2009 Bonjour,Je n'arrive pas à récupérer correctement les données d'un champ de configuration afin de les traiter dans un tableau avec la fonction array. Il s'agit d'un module d'upload.Voici les valeurs du champ UPLOADER_AUTH_EXT à traiter : ".pdf", ".jpg", ".jpeg", ".eps", ".ai", ".psd", ".tif" Et si je fais un echo Configuration::get('UPLOADER_AUTH_EXT'), j'obtiens bien : ".pdf", ".jpg", ".jpeg", ".eps", ".ai", ".psd", ".tif"Maintenant si j'utilise ma variable Configuration::get('UPLOADER_AUTH_EXT') dans une fonction array, j'obtiens FALSE alors que si je la remplace par la chaine qu'elle est censée afficher ".pdf", ".jpg", ".jpeg", ".eps", ".ai", ".psd", ".tif", j'obtiens TRUE.Voici un exemple de mon code : $b = array(Configuration::get('UPLOADER_AUTH_EXT')); if (in_array(".jpg", $){ echo "TRUE"; }else{ echo "FALSE"; } J'ai essayé de filtrer Configuration::get('UPLOADER_AUTH_EXT') avec addslashes() ou htmlentities() et rien n'y fait !!!Pouvez-vous m'aider ?Par avance merci.Dominique Link to comment Share on other sites More sharing options...
SotEW Posted December 22, 2009 Share Posted December 22, 2009 salut,En copiant ton code, j'ai effectivement un false, mais j'ai surtout $b vide. Dans la table configuration, je n'ai rien qui ressemble à UPLOADER_AUTH_EXT. où as tu eu vu cette variable de configuration ?Vu qu'il s'agit d'un module d'upload, je suppose que c'est toi qui as créé cette variable, donc je vais plutôt te conseiller de regarder (et de copier-coller ici pendant que tu y es) le résultat de ceci : $b = array(Configuration::get('UPLOADER_AUTH_EXT')); print_r($; echo " RESULT: ".((in_array(".jpg", $)?"TRUE":"FALSE"); Link to comment Share on other sites More sharing options...
domdas Posted December 22, 2009 Author Share Posted December 22, 2009 Merci pour ton aide.J'ai tester ton code et j'ai toujours un retour FALSE ! Link to comment Share on other sites More sharing options...
domdas Posted December 22, 2009 Author Share Posted December 22, 2009 Pour être complet, voici l'affichage du résultat :Array ( [0] => ".pdf", ".jpg", ".jpeg", ".eps", ".ai", ".psd", ".tif" )RESULT: FALSEEn clair, la fonction n'arrive pas à séparer les valeurs de la variable UPLOADER_AUTH_EXT pourtant l'affichage semble correct. Link to comment Share on other sites More sharing options...
SotEW Posted December 22, 2009 Share Posted December 22, 2009 oki, donc c'est normal.la fonction in_array($a, $ test si un élément de $b est exactement $a.Toi, tu as un seul élement dans ta liste, et c'est la chaine de caractère : ' “.pdf”, “.jpg”, “.jpeg”, “.eps”, “.ai”, “.psd”, “.tif” ' qui est différente de ".jpg ", donc ça renverra false.Tu as plusieurs solutions, en voici une parmi d'autres :Dans ta variable que tu as sans doute faite toi même arrange toi pour que le retour du print_r soit :Array ( [0] => .pdf|.jpg|.jpeg|.eps|.ai|.psd|.tif )ce qui chez moi pour le test correspond à faire : $b = array('.pdf|.jpg|.jpeg|.eps|.ai|.psd|.tif'); puis test avec ceci : $b = array(Configuration::get('UPLOADER_AUTH_EXT')); print_r($; echo " RESULT: ".((in_array(".jpg", explode('|', $b[0])))?"TRUE":"FALSE"); On pourrais aussi passer par la fonction strpos qui décomposera le premier élément de $b pour en trouver la chaine de caractère sans faire la décomposition de explode et le in_array, il y a toujours plusieurs façon de faire la même chose.Fait attention, tu avais fait plusieurs erreurs dans ton code à la base : in_array(".jpg", $ ne test pas la chaine de caractère ".jpg" mais .jpg. il aurait fallu mettre : in_array('".jpg"', $ Aussi, il faut se méfier des extensions : .JPG est aussi une image jpeg, et un fichier peux très bien être avec une extensions ne correspondant pas à son type. Il conviendrais de ne pas tester les extensions mais le type du fichier obtenu dans la variable $_FILES de ton formulaire d'upload. Link to comment Share on other sites More sharing options...
domdas Posted December 22, 2009 Author Share Posted December 22, 2009 [Resolu] Super tout fonctionne à merveille !!! Un grand Merci SotEW Link to comment Share on other sites More sharing options...
SotEW Posted December 22, 2009 Share Posted December 22, 2009 Et bah de rien, et pense à mettre [Resolu] dans le sujet ^^ Link to comment Share on other sites More sharing options...
a_sun Posted February 2, 2010 Share Posted February 2, 2010 [Resolu] Super tout fonctionne à merveille !!! Un grand Merci SotEW Hi Dominica:I need this solution. Can you show me how to do it, am not very sure to amend it. Where to start and where to amend, can you please guide me? If you can help me, I'd be enormously grateful.Regards,a_sun Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now