php logboek

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gerard Nijboer

Gerard Nijboer

15/04/2009 01:03:00
Quote Anchor link
Hallo,

ik wil een logboek gaan bijhouden, en mysql leek mij niet zo zeer geschikt dus wilde ik gaan voor een dagelijks tekstbestandje.
nu moet dit niet voor iedereen toegankelijk zijn, dus moet het geinclude zijn via php, en is het logbestandje dus ook php.
dit is wat ik tot nu toe heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
if (!file_exists("log/".date("Y-m-d").".log")) {
    $handle = fopen("log/".date("Y-m-d").".log","a");
    fwrite($handle,"[_PHP if ($"."security_code == 'Gerard') { PHP_]\n");
    fwrite($handle,"[_PHP } PHP_]");
    fclose($handle);
    }


    $handle = fopen("log/".date("Y-m-d").".log","a+");
    fseek($handle,-1,"SEEK_CUR");
    fwrite($handle,"echo '".date("Y-m-d-H:i:s").">Test one<br />';\n");
    fclose($handle);
?>

in de map /log komen alle dagelijkse logbestandjes te staan, tijdelijk even met achtervoegsel .log om de output te testen.
de $security_code is dus vastgesteld in de including admin pagina, om misbruik te voorkomen.
maar ik wil dat hij op de een na laatste regel begint met schrijven, zodat [_PHP } PHP_] altijd als laatste regel overblijft.
iemand suggesties? want dit werkt niet zo.

alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Gerard Nijboer
 
PHP hulp

PHP hulp

22/12/2024 11:47:15
 
Emmanuel Delay

Emmanuel Delay

15/04/2009 01:57:00
Quote Anchor link
Gerard Nijboer schreef op 15.04.2009 01:03:
... mysql leek mij niet zo zeer geschikt...


Ah bon.

Vooraleer we een antwoord geven op de vraag die je stelt; zou je eens een aantal argumenten kunnen geven waarom MySQL niet geschikt zou zijn?
 
Gerard Nijboer

Gerard Nijboer

15/04/2009 19:50:00
Quote Anchor link
mij leek het dat het eenvoudiger is om eens in de tijd een aantal logs te verwijderen in plaats van steeds de mysql database uit te moeten pluizen.
en de grootte leek mij ook beter, of is mysql juist kleiner in opslag?
ben nieuwsgierig naar advies, wat is de beste oplossing hier?
 
TJVB tvb

TJVB tvb

15/04/2009 20:00:00
Quote Anchor link
Mijn eerste vraag is wat noem jij groot?
En voor een gewoon log bestand kun je volgens mij het handigste gewone bestanden pakken en die buiten je webroot zitten. Dan hoef je er niet moeilijk voor te doen om het niet extern beschikbaar te maken.
 
Gerard Nijboer

Gerard Nijboer

15/04/2009 23:13:00
Quote Anchor link
1) ik wil graag een logbestand van alle gebruikers die zich aanmelden, afmelden, een bericht versturen en hun profiel updaten
2) dit moet netjes per dag geordend zijn en op tijd gesorteerd, met de betreffende gebruiker erbij en de ondernomen actie
3) het moet uiteindelijk wel web-toegankelijk zijn, maar alleen via admin-page, dus ik neem aan dat als ik alleen vanuit de admin page de log include, dat het dan ook zou moeten werken, en ik dus genoeg heb aan een plain-text log bestand buiten mn webroot?
 
Marco PHPJunky

Marco PHPJunky

15/04/2009 23:26:00
Quote Anchor link
Voor de boven vermelde punten kan je prima mysql gebruiken....

Je maakt een tabel aan in je database met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
logid int(11) PK.
userid int(11) FK.
moment datetime
actie .......
enze....


daarna kan je alles erin zetten... zorg er dan wel voor dat je het voor het laden van de pagina zet...
 
Gerard Nijboer

Gerard Nijboer

15/04/2009 23:57:00
Quote Anchor link
jaja, dat is inderdaad denk ik wel het fijnst om te doen, en dan voor de query waarin hij alle informatie laadt draai ik ook nog een query die alle records verwijdert die ouder zijn dan 3 maanden, is dat ook gelijk gefixt.
ik denk dat ik het zo ga oplossen, bedankt!
 
Terence Hersbach

Terence Hersbach

16/04/2009 00:03:00
Quote Anchor link
Als je met mysql aan de gang gaat, dan kom je op een gegeven moment tegen dat je een INSERT moet doen.

Tip: Zorg ervoor dat de query pas uitgevoerd word als de pagina geladen is, zodat de gebruiker niets merkt van de insert. Dat kan je met het volgende stukje mysql doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
INSERT DELAYED INTO tabel (veld1, veld2) VALUES ('waarde1', 'waarde2');


Dat delayed zorgt ervoor dat het pas aan het eind uitgevoerd wordt.
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
 
Gerard Nijboer

Gerard Nijboer

16/04/2009 00:09:00
Quote Anchor link
okee, dat is wel interessant, ga ik zeker gebruiken!
is er trouwens ook niet een manier dat je via phpmyadmin een query invoert die mysql bijvoorbeeld elke maand zelf uitvoert, zonder bijkomst van een php pagina?
zo kan ik mysql elke maand alle logs van 3 maanden geleden laten verwijderen, om te voorkomen dat de database alsnog enorm wordt wanneer er bijvoorbeeld langer dan 3 maanden geen admins in de logbestanden kijken.
iemand suggesties?
 
Terence Hersbach

Terence Hersbach

16/04/2009 00:17:00
Quote Anchor link
en hoe groot denk jij dat een database kan worden? Voordat je die traag hebt, leef jij niet meer..

een database is er juist voor dat zulke grote eenheden bewaart kunnen worden. (ja zelfs mysql kan dat)
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
 
Gerard Nijboer

Gerard Nijboer

16/04/2009 00:21:00
Quote Anchor link
okee, dan laat ik het gewoon staan, altijd handig om logs van maaaaanden terug te hebben =P
tnx man =D
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.