par
AB » 30 juil. 2012, 04:17
Un cron n'est rien d'autre que l'exécution programmée d'un fichier qui se trouve sur ton serveur.
Pour ton pb, lors de l'upload tu peux enregistrer dans une bdd le nom du fichier avec une date de péremption qui sera soit j+1 soit m+1. Avec mysql c'est facile :
$query = "INSERT INTO tab_fich (adresse_fich,date_fin) VALUES('".$adresse_fichier."',DATE_ADD(NOW(), INTERVAL 1 MONTH))";
ou si non inscrit :
$query = "INSERT INTO tab_fich (adresse_fich,date_fin) VALUES('".$adresse_fichier."',DATE_ADD(NOW(), INTERVAL 1 DAY))";
Et avec ton script cron (que tu lance tous les jours si tu utilise le format DATE ou plusieurs fois par jour pour être plus précis si tu veux utiliser DATETIME) tu supprime les fichiers dont la date actuelle est supérieure à la date de fin enregistrée.
$query = "SELECT adresse_fich FROM tab_fich WHERE NOW() > date_fin";
if($ressource = mysql_query($query))
{
while($result = mysql_fetch_assoc($ressource)) unlink($result['adresse_fich']);
}
Faut juste prendre soin que le champ "date_fin" soit au format date ou datetime dans mysql.
Un cron n'est rien d'autre que l'exécution programmée d'un fichier qui se trouve sur ton serveur.
Pour ton pb, lors de l'upload tu peux enregistrer dans une bdd le nom du fichier avec une date de péremption qui sera soit j+1 soit m+1. Avec mysql c'est facile :
[php]$query = "INSERT INTO tab_fich (adresse_fich,date_fin) VALUES('".$adresse_fichier."',DATE_ADD(NOW(), INTERVAL 1 MONTH))";[/php]
ou si non inscrit :
[php]$query = "INSERT INTO tab_fich (adresse_fich,date_fin) VALUES('".$adresse_fichier."',DATE_ADD(NOW(), INTERVAL 1 DAY))";[/php]
Et avec ton script cron (que tu lance tous les jours si tu utilise le format DATE ou plusieurs fois par jour pour être plus précis si tu veux utiliser DATETIME) tu supprime les fichiers dont la date actuelle est supérieure à la date de fin enregistrée.
[php]$query = "SELECT adresse_fich FROM tab_fich WHERE NOW() > date_fin";
if($ressource = mysql_query($query))
{
while($result = mysql_fetch_assoc($ressource)) unlink($result['adresse_fich']);
}[/php]
Faut juste prendre soin que le champ "date_fin" soit au format date ou datetime dans mysql.