Avatar billede total_sejt Nybegynder
09. november 2003 - 12:19 Der er 9 kommentarer og
1 løsning

Auto slet fra log

Hej jeg har en chat som bruger filen log til at lægge data i. Nu er det bare sådan at jeg gerne vil have at denne fil ikke bliver overfyldt. Kan man lave det sådan at hver fx onsdag kl. 3 om natten bliver filen tømt? Jeg har sådan en funktion her:

$log="data/log";
function opl(){global $log;$fd=fopen($log,"r") or die('...');$fs=fread($fd,filesize($log));fclose($fd);return $fs;}
Avatar billede Slettet bruger
09. november 2003 - 21:37 #1
du kan jo sætte serveren til at køre et script hver onsdag kl 3... men er det din egen server? hvis ikke skal der jo være besøgende på siden på det tidspunkt, så den kan køre scriptet
Avatar billede fixxxer Nybegynder
09. november 2003 - 21:40 #2
du kan jo ikke få den til at gøre det automatisk. du skal requeste den side, som skal gøre noget ved loggen hver onsdag kl. 3

hvis det er din egen server kunne du lave et program, msåke endda bare en batch som du med windows' Opgaveplanlægning i kontrolpanel
Avatar billede rackbox Nybegynder
09. november 2003 - 23:35 #3
PHP kører *KUN* når det bliver kaldt. Muligheden er som tidl. nævnt at sætte et eksterne script op til det eller at lave et PHP-script, der bliver kaldt af et javascript på et givent tidspunkt. Sidstnævnte er en ret rodet løsning, men virker...
Avatar billede sqren Nybegynder
12. november 2003 - 15:28 #4
Hvordan synes I jeg skal gøre??? Det jeg vil have den til er bare at filen log ikke bliver overfyldt. Iøjeblikket er man nødt til selv at tømme den... Er der ikke en smartere måde?
Avatar billede total_sejt Nybegynder
12. november 2003 - 16:04 #5
sqren -> Opret dit eget spørgsmål eller lyt her hvordan det skal gøres! Det er jo præcis sådan jeg også vil have det!
Avatar billede sqren Nybegynder
12. november 2003 - 16:12 #6
Sorry jeg troede bare at du ville have den til at tømme filen på en bestemt dato og klokkeslet. Jeg vil nemlig bare have det gjort hver femte dag eller noget i den stil og så tænkte jeg at da det var noget i samme retning kunne jeg få det lavet her... Skal nok stoppe med at spamme dit spørgsmål til mere...
Avatar billede rackbox Nybegynder
13. november 2003 - 17:53 #7
Hvis serveren alligevel har trafik hele tiden, så er det vel bare at smide et klokke-script ind på start-siden, ala

Tabel TimeTrack
id int auto increment
last_emptied date

<?php
$query = "select * from timetrack order by id desc";
$row = mysql_fetch_array(mysql_query($query));
$days_since_last_emptied=date("Y-m-d")-$row['last_emptied'];

if ($days_since_last_emptied>7){
  //dit eget empty-script plus
  $query = "insert into timetrack values ('', '".date("Y-m-d")."')";
  mysql_query($query);
}
//Herefter følger den normale kode...

Scriptet tjekker om det er mere end 7 dage siden at loggen blev slettet. Hvis ja, så slettes din log. Ellers fortsættes som om intet er hændt.
Den første bruger, der går ind på din side efter 7 dage vil fremprovokere et log-erase ;-) Ikke en "pæn" løsning, men det må vel fungere i dit tilfælde..
Avatar billede total_sejt Nybegynder
13. november 2003 - 18:06 #8
Jamen... min chat smider alle dataerne i en tekstfil kaldet "log"
Avatar billede rackbox Nybegynder
13. november 2003 - 22:28 #9
Jamen.. det er jo det, du så skal smide under "//dit eget empty-script"..

Det er ikke så svært at tømme en fil:
$filepointer = fopen ($filename, "w"); //Åbner filen og sletter indholdet
fclose ($filepointer); //Lukker filen igen

Vh
Rackbox
Avatar billede total_sejt Nybegynder
13. november 2003 - 22:39 #10
Nååå ja... Selfølgelig! Det prøver jeg! Sorry min dumhed!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester