login  Naam:   Wachtwoord: 
Registreer je!
 Forum

na 5 min bestand verwijderen

Offline svm - 13/09/2006 19:36 (laatste wijziging 13/09/2006 19:36)
Avatar van svmPHP ver gevorderde Beste leden,

Ik ben bezig met mijn ledensysteem zonder mysql en dit gaat zeer goed.
Ik kom nu tot een probleem:
Als een lid inlogd moet er naast de sessie ook een bestand in de map online aangemaakt worden.
Dit bestand moet dan automatisch als het lid 5 min niks gedaan heeft verwijderd worden.
Maar hoe doe ik dit?
Het volgende zal niet werken, want de gebruiker kan ook offline zijn en dan onderneemt de site geen actie meer:
  1. <? // voor de highlighting
  2. if(date("H:i:s", filemtime($bestand)) +5 == date("H:i:s")){
  3. unlink($bestand);
  4. }
  5. ?>


Het was dacht ik iets met @time(), maar weet iemand hoe het moet?


BVD
Stefan

8 antwoorden

Gesponsorde links
Offline Rens - 13/09/2006 19:42
Avatar van Rens Gouden medaille

Crew algemeen
  1. <?PHP
  2. if( (filemtime($bestand)+300) < time())
  3. {
  4. // ok
  5. }

Er word gekeken of de tijd van het bestand + 5 min. kleiner is dan 'nu'.
Zo ja, verwijderen...
Offline WimJ - 13/09/2006 19:42 (laatste wijziging 13/09/2006 19:43)
Avatar van WimJ Grafische gevorderde ga eens een kijkje nemen naar de code van het bekende 'PHPBB' Forum hé, dit werkt ook met een inactiviteits systeem, maar je zal waarschijnlijk de sesions waarde moeten geven (tijd waarden) ..

EDIT: Rensjuh was me eerst met ene oplossing / antwoord

Maar jah ik zou hebben gedacht dat het zo moest maar dus blijkbaar niet 
Offline svm - 13/09/2006 19:42 (laatste wijziging 13/09/2006 19:43)
Avatar van svm PHP ver gevorderde @Rensjuh
Maar als er dan niemand meer online is, werkt hij dan nog wel?
Offline Grayen - 13/09/2006 19:57
Avatar van Grayen PHP ver gevorderde ja, want al er dan weer iemand online komt verwijderd hij het dan, dus het zal niet zo zijn dat er volgens jouw script nog mensen online zijn terwijl ze dat niet zijn als je het volgens rensjuh's script doet ;)
Offline Gerard - 13/09/2006 21:47
Avatar van Gerard Ouwe rakker Als je wilt dat er elke 5 minuten een check wordt gedaan op oude bestanden, dan kan je eventueel overwegen om een CRON job te gebruiken.
Offline svm - 15/09/2006 20:58 (laatste wijziging 15/09/2006 21:18)
Avatar van svm PHP ver gevorderde Oké, ik doe het nu als volgd (als er 1 min niks gebeurd):

  1. if($handle = opendir("online")) {
  2. while(($file = readdir($handle)) !== false) {
  3. if($file != "." && $file != ".."){
  4. chmod("online/".$file, 0777);
  5. if(date("H:i", filemtime('online/'.$file)) != date("H:i")){
  6. unlink("online/". $file);
  7. }
  8. if(is_file("online/".$file)){
  9. chmod("online/".$file, 0644);
  10. }
  11. }
  12. }
  13. closedir($handle);
  14. }

Maar dit wil niet werken, er gebeurd niks ook geen error (ook niet met error_reporting).
Weet iemand de fout?
De map is correct benoemd.

P.S.
Niet leden mogen mailen naar dsb@flappie.nl
Offline Rens - 15/09/2006 21:21
Avatar van Rens Gouden medaille

Crew algemeen
Waarom doe je niet gewoon dit:
  1. if(filemtime('online/'.$file) < (time()-60)){

Dit kijkt of het langer is geleden dan 60 seconden terug.
Probeer dat eens?
Offline svm - 15/09/2006 21:23 (laatste wijziging 15/09/2006 21:31)
Avatar van svm PHP ver gevorderde Helaas, doet helemaal niks.

Edit:

Ik heb de oplossing al:
Alles werkt perfect, maar ik had hem in het deel gezet waarvoor je ingelogd moest zijn, en dat was ik dus niet.
Toch bedankt!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.217s