Po pierwsze dodawaj jakieś chociaż drobne komentarze do skryptu bo tak jest on bardzo nieczytelny.
Spójrz na mój stary skrypt dotyczący tego samego (ten skrypt "na początku" nawet jest dobry, tylko psuje sie przy wiekszej ilosc userow on-line, przez to, ze ma jakis blad przy zapisywaniu do pliku; dlatego nie chcialo mi sie juz go poprawiac i przerzucilem sie na sql, ) , ale mysle, ze zasada jak to ma wygladac jest jasno przedstawiona
<?php
$nazwaPliku="katalog/log.txt";
$minutnik=5; // Ilosc minut, przez ktore user bedzie wpisany
$minutnik=$minutnik*60;
$ip=$_SERVER['REMOTE_ADDR']; // Ip usera
$numerWpisu=0;
// Badanie czy uzytkownik jest zalogowany czy nie
if(isset($_SESSION['user'])) { $nick=$_SESSION['user'];
}
else $nick="gosc";
$plik=file("$nazwaPliku");
$liczbaWpisow=count($plik);
// Jeżeli wpisów jest 0 to odrazu dodaje usera
if ($liczbaWpisow==0) { $wpis=$ip.":||:".$nick.":||:".$czas; }
// Jeżeli jednak plik log.txt nie jest pusty
else {
#sprawdzam czy w pliku jest juz user o takim ip
for ($i=0;$i<$liczbaWpisow;$i++)
{
$czasWejscia=$tabela[2];
$numerWpisu++;
if ($ip==$tabela[0]) {
$wpis=$tabela[0].":||:".$nick.":||:".$czas;
$poziom="jest";
break;}
}
if ($poziom!=='jest') { $wpis=$ip.":||:".$nick.":||:".$czas; }
#sprawdzam aktualnosc wszystkich spisow
if ($poziom!=='jest') {
for ($i=0;$i<$liczbaWpisow;$i++)
{
$plik[$i]=trim($plik[$i]); $czasWejscia=$tabela[2];
if ($czas-$czasWejscia < $minutnik ) {
$wpisy[$i]=$tabela[0].":||:".$tabela[1].":||:".$tabela[2];
$wpis = $wpis."\n".$wpisy[$i];}
}
}
elseif ($poziom=='jest') {
for ($i=0;$i<$liczbaWpisow;$i++)
{
$plik[$i]=trim($plik[$i]); $czasWejscia=$tabela[2];
if ($czas-$czasWejscia < $minutnik AND $numerWpisu!==$i ) {
$wpisy[$i]=$tabela[0].":||:".$tabela[1].":||:".$tabela[2];
$wpis = $wpis."\n".$wpisy[$i];}
}
}
}
$otworz=fopen("$nazwaPliku","r+"); ?>