PhP Logboek

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jdog Silverblade

Jdog Silverblade

23/08/2012 11:17:16
Quote Anchor link
Hallo,
Op mijn website kunnen geregistreerde gebruikers inloggen, en naar verschillende pagina's gaan.
Ik wil in een bestand bijhouden wie op welke pagina is geweest.
Dit is vrij makkelijk te doen, door de onClick functie van de buttons aan te passen. (de buttons verwijzen door naar alle pagina's)
Maar het bestand moet wel 'beveiligd' zijn, ik wil niet dat iedereen het logboek kan zien. Ik weet dat dit fout gaat in bijvoorbeeld een .txt file, omdat PhP dan alle lees en schrijf rechten nodig heeft.
Mijn vraag is dus, welk bestandstype raden jullie aan voor het bijhouden van een logboek? (Ik hoef er alleen maar in te schrijven, de tekst wat erin komt kan ik zelf ook maken, dat is geen probleem)
En hoe kan ik in dat type bestand schrijven?

Alvast bedankt
~Jeroen

Ps. Ik kan helaas geen gebruik maken van MySQL, dus die valt af.
 
PHP hulp

PHP hulp

05/11/2024 16:27:04
 
- Ariën  -
Beheerder

- Ariën -

23/08/2012 11:19:05
Quote Anchor link
Je kan de log-files toch buiten je webroot opslaan, dus butien de /htdocs dir?
Alle rechten geven is inderdaad te voorbarig, met chmod 755 zit je al prima.

Maar waarom kan je geen MySQL gebruiken? Dit werkt wel een stuk makkelijker als je later wilt sorteren en zoeken.
 
Write Down

Write Down

23/08/2012 11:27:09
Quote Anchor link
chmod 755? Ik zou toch eerder geneigd zijn te zeggen 600. Dan kan de eigenaar (webserver) het bestand lezen en naar het bestand schrijven. Lijkt mij voldoende :-)

Toevoeging op 23/08/2012 11:28:45:

Overigens, doe dit niet d.m.v. van het aanpassen van je url's. Je plaatst in je bestand gewoonweg een stukje code dat altijd uitgevoerd wordt. Een stukje dus dat een lijn naar je logfile(s) weg schrijft. In je admin gedeelte, maak je een functie die het bestand inleest.

Om met bestanden te werken kan je is kijken naar SplFileObject (objectgericht) of naar fopen.
Gewijzigd op 23/08/2012 11:31:11 door Write Down
 
Jdog Silverblade

Jdog Silverblade

23/08/2012 11:39:28
Quote Anchor link
Ik kan geen MySQL gebruiken omdat dit simpelweg niet in het hosting pakket zit.
Maar wel een goede tip, buiten de htdocs !
Waar sla ik het bestand dan op? Ik gebruik WinSCP, en het de volgende mappen:
<mijnsite.nl>/<public_html>
Mij werd verteld dat ik alles in de public_html moest zetten.
In <mijnsite.nl> staan nog meer mappen, namelijk deze:
.htpasswd
logs
public_ftp
public_html
stats
Zoals ik al zei, alle bestanden op mijn site staan in de map public_html. Waar is de bedoeling dat ik de log file plaats?
Alvast bedankt
 
- Ariën  -
Beheerder

- Ariën -

23/08/2012 11:42:29
Quote Anchor link
Haast elke hosting biedt mysql. Is het niet handiger om toch eens mysql aan te vragen bij hen?
Durf te wedden dat je veel profijt van je logsysteem hebt.

Je bestand kan je voor je /public_html plaatsen.
Gewijzigd op 23/08/2012 11:44:08 door - Ariën -
 
Jdog Silverblade

Jdog Silverblade

23/08/2012 11:49:34
Quote Anchor link
Ok, ik heb nu een txt bestand in de map <mijnsite.nl> staan, maar hoe kan ik naar die file schrijven? <mijnsite.nl>/logboek.txt werkt niet, omdat het buiten de public_html staat.
 
Write Down

Write Down

23/08/2012 12:58:28
Quote Anchor link
Je moet het path aanpassen. Als je script in public_html staat is dit je basispath. De map onder public_html kan je benaderen via: '../'. Dus in je script zal je ergens iets als het volgende hebben: '../logboek.txt';
 
Flip --

Flip --

23/08/2012 13:13:34
Quote Anchor link
maak een map aan die je private_html noemt, zet je daarin al je php/html dat niet direct toegang mag hebben. Je log bestand zou je in logs kunnen zetten.
 
- Ariën  -
Beheerder

- Ariën -

23/08/2012 13:17:16
Quote Anchor link
De log-map die al bestaat is niet voor andere logs dan de die van de webserver bedoeld.
 
Write Down

Write Down

23/08/2012 13:56:19
Quote Anchor link
- Aar - op 23/08/2012 13:17:16:
De log-map die al bestaat is niet voor andere logs dan de die van de webserver bedoeld.


Daar zou ik inderdaad ook niets bij gaan plaatsen. Je weet nooit waarvoor/door wat deze map allemaal gebruikt wordt. Het kan zijn dat het controle panel deze bijvoorbeeld volledig uitleest. Misschien geen ramp, maar mogelijk geeft dit fouten. (doordat het formaat bijvoorbeeld niet goed is)
 
- Ariën  -
Beheerder

- Ariën -

23/08/2012 14:02:00
Quote Anchor link
Of de log-rotate van directadmin,wat op je server draait, gooit hem dan weg.
 
Jdog Silverblade

Jdog Silverblade

23/08/2012 14:41:44
Quote Anchor link
Bij bericht #2 en #3 werd mij verteld over chmod.
Ik heb nu een txt file, gewoon in de public_html map staan.
Als ik de rechten op alleen eigenaar lezen en schrijven zet, kan niemand het bestand openen.
Als chmod er dan voor kan zorgen dat bij het begin van het schrijven de rechten op iedereen lezen en schrijven wordt gezet, en na het schrijven weer terug op alleen eigenaar lezen en schrijven ben ik ook klaar, ... dacht ik.
Het probleem hiermee is dat chmod geen rechten heeft om de rechten te wijzigen.
Kan dat met groep, of zou het werken als ik de txt file in een PhP script zou genereren? (Dan is PhP namelijk de eigenaar, en ik niet).

Alvast bedankt
~Jeroen
 
- Ariën  -
Beheerder

- Ariën -

23/08/2012 14:47:49
Quote Anchor link
waarom zet je het in de public_map?
Zulke log's kannen er toch prima buiten?
 
Jdog Silverblade

Jdog Silverblade

23/08/2012 14:55:53
Quote Anchor link
Ja, maar hoe kan ik ze dan wijzigen?
Ik moet het adres van het bestand weten...
 
Write Down

Write Down

23/08/2012 15:00:45
Quote Anchor link
Ja, je weet het adres toch? Desnoods met absoluut path.
 
Jdog Silverblade

Jdog Silverblade

23/08/2012 15:06:09
Quote Anchor link
Ja, maar als ik bijvoorbeeld 'http://www.<sitenaam>.nl/logboek.txt' doe, wordt er automatisch gezocht naar een bestand met de naam 'logboek.txt' in de map public_html.
Volgens mij werkt het ook als ik het bestand kan laten maken door PhP, zodat PhP de eigenaar is en altijd kan lezen en schrijven. Ik ken fopen, fread, fwrite, maar ik weet niet of er zoiets bestaat om een text file te maken.
Weet iemand dat?
 
Write Down

Write Down

23/08/2012 15:10:09
Quote Anchor link
Maar dat is toch net het punt? Je wilt het bestand niet toegankelijk maken voor anderen? Dan plaats je het dus buiten je weboort. Wil je er naar schrijven? Dan gebruik je PHP. Wil je als admin de inhoud zien, dan gebruik je ook PHP. Je gaat dus nooit rechtstreeks naar het bestand surfen.
 
Jdog Silverblade

Jdog Silverblade

23/08/2012 15:35:08
Quote Anchor link
Ik heb fopen(<bestand>, 'x+') gebruikt. Dit controleert of het bestand bestaat, en zo nee het bestand maakt.
Vervolgens gebruik ik chmod(<bestand>, 0600), wat ervoor zorgt dat alleen de eigenaar kan lezen en schrijven.

Zelfs met WinSCP kan ik het bestand niet meer openen, laat staan wijzigen. Via internet kun je ook niets wijzigen, alleen het PhP script kan dat.

Samengevat, het werkt nu perfect, met een goede beveiliging !

Bedankt allemaal
~Jeroen
 



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.