Supprimer des images

Eléphant du PHP | 351 Messages

14 juin 2006, 10:51

J'ai fais ce code :
<?php
$curtime = time(); // recupere la date courante (secondes)
$maxdelay = 60 * 24 * 60 * 60; // delai max de peremption de fichiers : 60 jours (en secondes)
if ($handle = opendir('.')) { 
   while (false !== ($file = readdir($handle))) { 
       if ($file != "." && $file != "..") { 
           if($curtime-filemtime($file)>$maxdelay)
               unlink($file); // suppression du fichier
           else
               echo "$file<br>\n"; 
       } 
   } 
   closedir($handle); 
} 
?> 
Donc si quelqu'un voit une erreur, dites le moi.

Eléphant du PHP | 351 Messages

14 juin 2006, 11:01

Juste un petit truc, avec le code :
<?php
$curtime = time(); // recupere la date courante (secondes)
$maxdelay = 60 * 24 * 60 * 60; // delai max de peremption de fichiers : 60 jours (en secondes)
if ($handle = opendir('.')) { 
   while (false !== ($file = readdir($handle))) { 
       if ($file != "." && $file != "..") { 
           if($curtime-filemtime($file)>$maxdelay)
               unlink($file); // suppression du fichier
           else
               echo "$file<br>\n"; 
       } 
   } 
   closedir($handle); 
} 
?>
Ce ne serait ps possible de limiter aux fichiers avec les extensions :
jpg
jpeg
gif
png
swf
bmp
?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 juin 2006, 19:58

c'est tout à fait possible en effectuant une recherche avec "extension" en mot clé tu trouvera pleins d'exemples.

En voici un

à retenir
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');

if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
...
essai d'y aller par étapes: fonction par fonction pour comprendre ce qui se passe.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 351 Messages

14 juin 2006, 23:11

Oui, mais comment l'adapter avec mon code?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 juin 2006, 23:23

comment l'adapter avec mon code?
essai d'y aller par étapes: fonction par fonction pour comprendre ce qui se passe.
Je n'ai pas pour habitude de donner des codes à copier coller... mais si tu montres que tu as fait des essais je veux bien te guider mais pas dans le cas contraire.

Il y a une suite de fonctions:
in_array()
substr()
strrchr()
Regarde la doc pour leur utilité.

$_FILES['photo']['name'] est le nom du fichier donc pour ton cas "$file".

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 351 Messages

14 juin 2006, 23:25

J'ai quand même réussi a faire le code :oops:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 juin 2006, 23:38

C'est cool puisque tu l'as fait (plus ou moins) seul....
tu peux peut etre le déposer ici pour d'autres utilisateurs :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 351 Messages

14 juin 2006, 23:41

Je parle de clui ci :
<?php 
$curtime = time(); // recupere la date courante (secondes) 
$maxdelay = 60 * 24 * 60 * 60; // delai max de peremption de fichiers : 60 jours (en secondes) 
if ($handle = opendir('.')) { 
   while (false !== ($file = readdir($handle))) { 
       if ($file != "." && $file != "..") { 
           if($curtime-filemtime($file)>$maxdelay) 
               unlink($file); // suppression du fichier 
           else 
               echo "$file<br>\n"; 
       } 
   } 
   closedir($handle); 
} 
?> 
Après pour les extensions autorisé, je n'y arrive pas ... :oops:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 juin 2006, 23:46

Bon tu as compris ce qu'est "$extensions_ok" dans l'exemple ?

ensuite pour tester les fonction affiche leur traitement tout simplement.
echo strrchr($file,'.'); 
De même pour les autres

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 351 Messages

14 juin 2006, 23:53

Oui, j'ai copris ca, c'est la liste des extensions autorisé, mais pour le reste...


Aide moi, please.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 juin 2006, 00:01

regarde ça de près ensuite c'est le même principe suffit d'y inclure ton test sur le temps dans l'une ou l'autre condition
if ($file != "." && $file != "..") 
{
     if(in_array( substr(strrchr($file, '.'), 1), $extensions_ok ) ) 
                echo 'un message de test... se passe quoi ici pour '.$file.' ?<br>'; 
      else 
               echo 'autre message concernant le fichier '.$file.'<br>';  
} 

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 351 Messages

15 juin 2006, 08:22

Bon, et bien merci, mais je viens d'etre hacker, tout mon site est partie en fumer, je suis très énervé!

La signature du hacker!! :

Image

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 juin 2006, 00:41

Bon, et bien merci, mais je viens d'etre hacker
Et donc ?
Tu laisse tomber ?

en tout cas ce n'est pas ce bout de code qui a permis ce piratage.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 351 Messages

16 juin 2006, 08:43

Non, je ne laisse jamais tomber, c'était juste pour te dire que le temps que je regarde tout ca, donc maintenant, c'est bon, ca venant de mon forum.
Maintenant le code ...

Eléphant du PHP | 351 Messages

17 juin 2006, 07:40

Pourriez vous me finir le code avec les extensions autorisé, s'il vous plait, car je n'y arrive pas.