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.
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 ;-)!
* 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.
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
?>
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.