18-06-2011, 20:44
(Ten post był ostatnio modyfikowany: 18-06-2011, 20:46 przez messi19125.)
Znalazłem skrypty z licznikami online ale niestety żadne z nich nie działa prawidłowo. Pokazuje mi że na stronie jest obecnie 1 gość a na prawdę jest ich więcej.
online 1:
online 2:
Czy wie ktoś może co zrobić aby którykolwiek z nich działał prawidłowo?
A może macie jakiś pewny skrypt która działa dobrze?
Bardzo proszę o pomoc
online 1:
Kod:
<?
$plik = "online.txt"; # Adres pliku txt z hmod 666
$czas = 200; # CZAS ONLINE (zalecany 200sek.)
$t = time();
$ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
$u = explode("\n", str_replace("\r", "", @join("", @file($plik))));
foreach($u as $i => $v) {
$e = explode("|", $v);
if($e[0] == $ip || $e[1] < $t) unset($u[$i]);
}
$u[] = $ip . "|" . ($t + $czas);
$fp = fopen($plik, "w");
flock($fp, 2);
fputs($fp, join("\n", $u));
flock($fp, 3);
fclose($fp);
echo 'Teraz gości OnLine,: '.count($u);
?>
online 2:
Kod:
<?php
$conn = mysql_connect("localhost", "user", "password");
mysql_select_db("baza", $conn);
// to było połączenie się z MySQL
function stats($mojeip)// argumentem jest tutaj IP, ale możesz zmienić na identyfikator sesji
{
global $conn;
global $count;
// globalizacja zmiennych, aby ich wartość była dostępna w funkcji
$teraz = time();
// pobiera czas
if ($count == 0) // sprawdza, czy ma wstawić nowy rekord do tabeli
{
$res = mysql_query("INSERT INTO temp VALUES ('$mojeip', '$teraz')", $conn);
// wstawienie nowego rekordu
}
$res = mysql_query("UPDATE `temp` SET `czas` = '".$teraz."' WHERE `ip` = '".$mojeip."' LIMIT 1'", $conn);
// a teraz uaktualnienie naszego rekordu
$res = mysql_query("SELECT * FROM temp", $conn);
// wybieramy wszystko z tabeli temp
for ($i=0; $myrow=mysql_fetch_assoc($res); $i++)
{
$ip = $myrow['ip'];
$czass= $myrow['czas'];
if ($czass < ($teraz - 600))
{
$pyt=mysql_query("DELETE from temp where ip='$ip'", $conn);
$i--;
}
/* W pętli sprawdziliśmy, czy czasy użytkowników są mniejsze niż 10 min (600 sek), jeśli nie to kasujemy go z tabeli */
}
if ($i==0)
{
$res = mysql_query("INSERT INTO temp VALUES ('$mojeip', '$teraz')", $conn);
// jeśli ktoś nas skasował, to musimy się dodać, bo liczba userów nie może być równa 0!
$i++;
}
return $i;
// zwracamy wartość
}
?>
<?php
echo(stats($REMOTE_ADDR));
?>
Czy wie ktoś może co zrobić aby którykolwiek z nich działał prawidłowo?
A może macie jakiś pewny skrypt która działa dobrze?
Bardzo proszę o pomoc
