Beste,

Met het project waar ik aan werk wil ik alle logins loggen.

Het gaat mij om het IP adres. Mocht er spam of wat dat ook geplaatst worden kan ik aan de hand van het IP adres achterhalen wie er is ingelogd geweest via dat IP op dat moment en eerder.
wat ik de beste manier om dat te bewaren?

Het script moet wel alle log's gaan uitlezen als er om gevraagt wordt en het kan gaan bestaan uit veel gebruikers.

Ik dacht zelf aan een database maar misschien is een simpel .txt bestand voldoende?
mochten jullie nog betere ideeen hebben hoor ik het graag.

Mvg,

Erik
Weet ik niet, maar .txt bestand lijkt mij de beste oplossing...
want als je een hele hoop gebruikers krijgt, gaat het heel erg hoog oplopen... via .txt kun je dat dan gewoon es downloaden naar je compu ;-)!
Waar staat je login informatie? Als deze in een database staan, kan je best het IP er bij noteren... :)
* Als ik het goed begrijp, wil je niet alleen van de laatste inlog sessie het IP bewaren, maar ook van eerdere.
* Tegelijk wil je dit later aan een gebruiker kunnen koppelen mocht dit nodig zijn.
* Omdat je het later op wil halen moet je ook weten waneer het was.

Maak dan gewoon een extra tabel, hierin schrijf je het IP, het ID van je gebruiker zoals het waarschijnlijk in je memers tabel staat en een timestamp oid.

Je hebt dan een simpele tabel met 3 kolomen en een beter overzicht dan in een tekst bestandje, zie daarin maar eens iets terug te vinden.
Aymeric DL schreef op 09.08.2006 01:55
Weet ik niet, maar .txt bestand lijkt mij de beste oplossing...
want als je een hele hoop gebruikers krijgt, gaat het heel erg hoog oplopen... via .txt kun je dat dan gewoon es downloaden naar je compu ;-)!

Het gaat om het opslaan van gegevens. Dat doe je in een database. Op een tabel in een DB kun je een query loslaten (wie zijn er gisteren tussen 3 en 6 allemaal ingelogd geweest) en op een tekstbestand niet.

Het zou zoiets kunnen worden:
<?php
function get_ip () {
if (@getenv ($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = @getenv ($_SERVER['HTTP_X_FORWARDED_FOR']);
}
elseif (@getenv ($_SERVER['HTTP_CLIENT_IP'])) {
$ip = @getenv ($_SERVER['HTTP_CLIENT_IP']);
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
}

if ($login_ok) { // die moet je zelf ergens zetten
$ip = get_ip ();
$sql = "
INSERT INTO logins
SET
member_id = '" . $member_id . "',
ip = '" . $ip . "',
datumtijd = NOW()
";
}
// member_id moet ook ergens uit je loginscript komen
?>
@ iedereen,

bedankt :)
@ Jan,

als ik die functie in mijn script neerzet en hem opvraag dmv:

<?
$ip = get_ip();

Dan werkt dat niet. Alles in de query wordt ge-update behalve het ip-adres.
Wat ik zou doen is dat je bij elk bericht niet alleen de posters naam in de database erbij schrijft, maar ook het ip van de poster (op dat moment).
Zo kan je bij spam meteen zien wie het had gepost en vanaf welk ip.

Of ik moet je idee verkeerd begrijpen?
@ Jordy,

zo doe ik het ook, maar ik wilde ook graag een lijst bijhouden van wie inlogd en vanaf welk IP.

Mvg,

Erik
Erik schreef op 09.08.2006 20:31
@ Jan,

als ik die functie in mijn script neerzet en hem opvraag dmv:

<?
$ip = get_ip();

Dan werkt dat niet. Alles in de query wordt ge-update behalve het ip-adres.


Ik zie al hoe dat komt. In mijn voorbeeld staat er geen return $ip in de functie get_ip.
:(

dat had ik zelf ook door moeten hebben :-/
bedankt.

Reageren