Pb avec les fonctions de contrôle de fichiers ...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb avec les fonctions de contrôle de fichiers ...

par Kirk » 26 nov. 2006, 16:32

Bonjour,

Tu as raison, finalement le unlink et le foreach fonctionne correctement. J'avais une erreur simplement à cause de l'inhibition de copy() et glob().

Pour copy() j'ai pu le remplacer par move_uploaded_file() pour des fichiers téléchargés et par rename() pour des déplacer des fichiers locaux. Par contre je me demande comment je vais faire pour dupliquer un fichier dans deux rep différents lorsque j'aurais besoin de ça ...

Pour glob(), j'ai pu trouver une fonction safe_glob() que j'ai aménagé un peu pour mes besoins. La voici :

Code : Tout sélectionner

function safe_glob($pattern, $flags=0) { $split=explode('/',$pattern); $match=array_pop($split); $path=implode('/',$split); if (($dir=opendir($path))!==false) { $glob=array(); while(($file=readdir($dir))!==false) { if (fnmatch($match,$file)) { if ((is_dir("$path/$file"))||(!($flags&GLOB_ONLYDIR))) { if ($flags&GLOB_MARK) $file.='/'; if($file != '.' && $file != '..') { $glob[]=$file; } } } } closedir($dir); if (!($flags&GLOB_NOSORT)) sort($glob); return $glob; } else { return false; } }
Merci de ta réponse. Vous pouvez passer le topic en [résolu].

par fab » 25 nov. 2006, 21:34

Concernant ton problème avec unlink() et foreach() c'est ton utilisation qui est incorrecte vu le message d'erreur :
- fichier inéxistant pour unlink
- problème au niveau des arguments pour foreach()

Et puis pour glob il suffit d'aller sur la page de la doc pour voir :
Exemple 1. Un moyen pratique pour remplacer opendir() par glob()
Donc les deux fonctions correspondent a peu pres plus d'informations sur la doc
http://fr.php.net/manual/fr/function.opendir.php
http://fr.php.net/manual/fr/function.glob.php

Pb avec les fonctions de contrôle de fichiers ...

par Kirk » 25 nov. 2006, 18:58

Bonjour à tous,

Depuis hier, je rencontre un pb sur les opérations de contrôle de fichiers en PHP chez mon hébergeur PHPNet. A priori toutes les fonctions copy(), unlink(), glob(), etc ... ainsi que sur le foreach(). Elles sont inhibées pour des raisons de sécurité !

Ci-dessous, copie des messages d'erreurs rçus :

Code : Tout sélectionner

Warning: copy() has been disabled for security reasons in /home/users/c/canihome/www/siteafaire/include/file_function.php on line 736 Warning: filesize() [function.filesize]: Stat failed for ../../../S3/DESIGN/PAGE_BG_IM.jpg (errno=2 - No such file or directory) in /home/users/c/canihome/www/siteafaire/include/file_function.php on line 737 Warning: unlink(../../../S3/TEMPO/PAGE_BG_IM.jpg) [function.unlink]: No such file or directory in /home/users/c/canihome/www/siteafaire/include/maj_style.php on line 163 Warning: glob() has been disabled for security reasons in /home/users/c/canihome/www/siteafaire/include/file_function.php on line 756 Warning: Invalid argument supplied for foreach() in /home/users/c/canihome/www/siteafaire/include/file_function.php on line 756 Warning: glob() has been disabled for security reasons in /home/users/c/canihome/www/siteafaire/include/file_function.php on line 756 Warning: Invalid argument supplied for foreach() in /home/users/c/canihome/www/siteafaire/include/file_function.php on line 756 Warning: glob() has been disabled for security reasons in /home/users/c/canihome/www/siteafaire/include/file_function.php on line 756 Warning: Invalid argument supplied for foreach() in /home/users/c/canihome/www/siteafaire/include/file_function.php on line 756
Mon hébergeur répond :

Code : Tout sélectionner

en effet, en raison de failles dans les différentes versions de php, nous sommes obligé de couper ces fonctions pour des raisons de securité. ces fonctionnalitées sont en general existantes avec d'autres fonctions de php plus secures. Je vous invite donc a les utiliser a la place de celles-ci.
Avec un peu d'aide j'ai pu remplacer la fonction copy() par move_uploaded_file(). Mais je n'ai rien trouvé comme substitution à unlink, glob et foreach.

Pourriez-vous m'aider SVP ?

Merci par avance.