Autor Zpráva
george
Profil
Mám malý problém propojuji počítadlo on-line přístupů a píše mi to takovéhle chyby, nevim co s nimi:

Notice: Undefined variable: datei in c:\program files\easyphp1-8\www\onlinecount.php on line 13

Notice: Undefined variable: REMOTE_ADDR in c:\program files\easyphp1-8\www\onlinecount.php on line 15
1
Notice: Undefined variable: REMOTE_ADDR in c:\program files\easyphp1-8\www\onlinecount.php on line 56


Ta jednička označuje, že jsem on-line, když jsem to testoval na localhostu u sebe.

Propojil jsem to výrazem: <?php include("onlinecount.php"); ?>

A samotný kod je

<?php


$timer = 2;

$filename = "log.txt";

if (!$datei) $datei = dirname(__FILE__)."/$filename";
$time = @time();
$ip = $REMOTE_ADDR;
$string = "$ip|$time\n";
$a = fopen("$filename", "a+");
fputs($a, $string);
fclose($a);

$timeout = time()-(60*$timer);

$all = "";
$i = 0;
$datei = file($filename);
for ($num = 0; $num < count($datei); $num++) {
$pieces = explode("|",$datei[$num]);

if ($pieces[1] > $timeout) {
$all .= $pieces[0];
$all .= ",";
}
$i++;
}

$all = substr($all,0,strlen($all)-1);
$arraypieces = explode(",",$all);
$useronline = count(array_flip(array_flip($arraypieces)));


echo $useronline;



$dell = "";
for ($numm = 0; $numm < count($datei); $numm++) {
$tiles = explode("|",$datei[$numm]);
if ($tiles[1] > $timeout) {
$dell .= "$tiles[0]|$tiles[1]";
}
}

if (!$datei) $datei = dirname(__FILE__)."/$filename";
$time = @time();
$ip = $REMOTE_ADDR;
$string = "$dell";
$a = fopen("$filename", "w+");
fputs($a, $string);
fclose($a);
?>

Nedokážu dohledat chybu..
Nemáte někdo ještě počítadlo, které zaznamenává kdo je on-line ale funkční?
rabbit
Profil
Ty NOTICES znamenají, že používáš proměnné dříve, než jim přiřadíš hodnotu.

Na localhostu máš asi zobrazování notices zakázané.

Zpousta "programátorů" notices ignoruje ... pro tebe bude nejjednodušší dát na začátek kódu řádek
error_reporting(E_ERROR | E_WARNING | E_PARSE);
george
Profil
Moc diky..!
rabbit
Profil
Moc neděkuj, napřed to zkus, jestli ti to funguje.

Odkud jsi vzal ten skript? Jak se tak dívám, tak je to hrozná prasárna.
george
Profil
Z Pc svět, odskoušel jsem a funguje to. =)
DJ Miky
Profil
Místo
$ip = $REMOTE_ADDR;
dej
$ip = $_SERVER['REMOTE_ADDR'];

A místo
if (!$datei)
dej
if (!isset($datei))
Toto téma je uzamčeno. Odpověď nelze zaslat.