Avatar billede geek-master Nybegynder
27. juni 2002 - 18:53 Der er 22 kommentarer og
1 løsning

log system

Er der nogle der gidder og lave en kode der opretter en fil (.txt) hver gang der er gået 24 timer som ikke overskriver den gamle hvor den skriver hvormange der har været på siden i dag så jeg kan lave et program i delphi så man kan se de foreskellige log's
Avatar billede lequet Nybegynder
27. juni 2002 - 18:59 #1
Der skal du lave et cron job, hvilket kun kan lade sig gøre i Linux/Unix, men det er den eneste måde du kan gøre det på
Avatar billede geek-master Nybegynder
27. juni 2002 - 19:06 #2
??
Avatar billede geek-master Nybegynder
27. juni 2002 - 19:06 #3
det eneste jag skal have lavet et dt php hvor den laver en txt hver gang der er gået 24 timer
Avatar billede angelod Novice
27. juni 2002 - 19:17 #4
Bruger du Apache?
Avatar billede jakoba Nybegynder
27. juni 2002 - 19:31 #5
Serveren er netop det en server. for at få den til at køre et php-script skal nogen give den besked om at køre det php-script.

ennte ved at der komme en request til den .php fil via http
eller via lequet's cron job der kører udenfor serveren og derfor godt kan startes med noget automatik.

sorry.

men siden der skal startes en ny fil hver dag kan du vel lave filnavnet så det indeholder datoen. eg filen for idag hedder 'log20020627.txt'

så ka di script der skal rælle besøgende teste om der er en fil for idag, og pgrette den hvis den ikke allerede findes.

$filnavn = "log".date("Ymd").".txt";

if ( file_exists( $filnavn ) {
    // der har været en tidligere besøgende idag. bare tæl op
    $fp = fopen( $filnavn, "r+" );
    $count = freads( $fp );
    rewind( $fp );
    fwrite( $fp, 1*$count+1 );
    fclose( $fp );
} else {
    // det er første besøg idag, oprret og sæt til 1
    $fp = fopen( $filnavn, "w" );
    fwrite( $fp, 1 );
    fclose( $fp );
}

mvh JakobA
Avatar billede geek-master Nybegynder
27. juni 2002 - 19:48 #6
hvorda kan jeg så sette den til at gøre det efter 12 timer eller 15 timer osv
Avatar billede geek-master Nybegynder
27. juni 2002 - 19:50 #7
Parse error: parse error, unexpected '{' in C:\Xitami\webpages\index.php on line 4
Avatar billede lequet Nybegynder
27. juni 2002 - 19:52 #8
Avatar billede geek-master Nybegynder
27. juni 2002 - 19:52 #9
den er gal i if

( file_exists( $filnavn ) {
Avatar billede jakoba Nybegynder
27. juni 2002 - 19:56 #10
Ups, der skal være en ) mere foran {

if ( file_exists( $filnavn ) ) {

for at bruge ander tidsintervalle kan du lave dine filnavne efter recepten

$filnavn = "log".floor(mktime()/(60*60+15)).".txt";  // for 15 timer
$filnavn = "log".floor(mktime()/(60*60+12)).".txt";  // for 12 timer
$filnavn = "log".floor(mktime()/(60*60+4).".txt";  // for 4 timer
osv
det giver knapt så kønne filnavne men laver den ønskede sekvens.
Avatar billede jakoba Nybegynder
27. juni 2002 - 19:58 #11
Ups igen. det skal være * istedet for + i alle 3 linier
$filnavn = "log".floor(mktime()/(60*60*15)).".txt";  // for 15 timer
Avatar billede geek-master Nybegynder
27. juni 2002 - 19:58 #12
jakoba> gidder du ikke lige og sette det sammen
Avatar billede jakoba Nybegynder
27. juni 2002 - 20:07 #13
Med hvilket interval imellem oprettelse af ny fil?
      24 timer, 15 timer, 12 timer, noget fjerde

Skal der skelnes mellem countere på forskellige sider?

mvh JakobA
Avatar billede geek-master Nybegynder
27. juni 2002 - 20:11 #14
12 timer men brugeren skal ikke kunne se noget
Avatar billede jakoba Nybegynder
27. juni 2002 - 20:17 #15
<?php
$filnavn = "log".floor(mktime()/(60*60*12)).".txt";  // for 12 timer
if ( file_exists( $filnavn ) ) {
    // der har været en tidligere besøgende idag. bare tæl op
    $fp = fopen( $filnavn, "r+" );
    $count = freads( $fp );
    rewind( $fp );
    fwrite( $fp, 1*$count+1 );
    fclose( $fp );
} else {
    // det er første besøg idag, oprret og sæt til 1
    $fp = fopen( $filnavn, "w" );
    fwrite( $fp, 1 );
    fclose( $fp );
}
?>

Og du skal have skrivetilladelse i den mappe filerne ligger i så scriptet har lov til at oprette nye filer.

mvh JakobA
Avatar billede geek-master Nybegynder
27. juni 2002 - 20:19 #16
tænker over 60*60*12 er de føste 60 sec og de næste min og de siste 12 timer?
Avatar billede geek-master Nybegynder
27. juni 2002 - 20:22 #17
hvis man skal sette den ned til 15 min er det så (60*15)
Avatar billede geek-master Nybegynder
27. juni 2002 - 20:26 #18
Fatal error: Call to undefined function: freads() in C:\Xitami\webpages\index.php on line 6
Avatar billede jakoba Nybegynder
27. juni 2002 - 20:29 #19
lige præcis (60*15) giver ny fil hvert 15'ende minut.

Ups igen igen. fread (uden s)
Avatar billede geek-master Nybegynder
27. juni 2002 - 20:31 #20
skriver den ikke en log hvis der har været 0 hits?
Avatar billede geek-master Nybegynder
27. juni 2002 - 20:35 #21
den skal skrive en log selvom der har været 0 hits hver gang der er gået 12 timer
Avatar billede jakoba Nybegynder
27. juni 2002 - 20:57 #22
Det gør den ikke. for det må du nok bruge lequets cron jobs.
Avatar billede jakoba Nybegynder
27. juni 2002 - 21:03 #23
eller du kunne teste fra delphi:

if bwtingelse("der er en fil for den periode")
then
    begin
    (* åben fillen og læs hvor mange *)
    antal_for_perioden := tal_i_filen;
    end
else
    begin
    antal_for_perioden := 0;
    end;

mvh JakobA
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