Diablo: counter prob

Ich hab mal mit einem workshop einen counter erstellt. Hier der skript:
<?php
$img = "";
$animated_img = "";
$padding = 4;
$width = 16;
$height = 22;
$fpt = "account.txt";
$lock_ip =1;
$ip_lock_timeout =3036;
$fpt_ip = "ip.txt";
function checkIP($rem_addr) {
global $fpt_ip,$ip_lock_timeout;
$ip_array = file($fpt_ip);
$reload_dat = fopen($fpt_ip,"w");
$this_time = time();
for ($i=0; $i<sizeof($ip_array); $i++) {
list($ip_addr,$time_stamp) = split("|",$ip_array[$i]);
if ($this_time < ($time_stamp+60*$ip_lock_timeout)) {
if ($ip_addr == $rem_addr) {
$found=1;
} else {
fwrite($reload_dat,"$ip_addr|$time_stamp");
}
}
}
fwrite($reload_dat,"$rem_addr|$this_timen");
fclose($reload_dat);
return ($found==1) ? 1 : 0;
}
if (!file_exists($fpt)) {
$count_dat = fopen($fpt,"w+");
$digits = 0;
fwrite($count_dat,$digits);
fclose($count_dat);
}
else {
$line = file($fpt);
$digits = $line[0];
if ($lock_ip==0 || ($lock_ip==1 && checkIP($REMOTE_ADDR)==0)) {
$count_dat = fopen($fpt,"r+");
$digits++;
fwrite($count_dat,$digits);
fclose($count_dat);
}
}
$digits = sprintf ("%0".$padding."d",$digits);
$ani_digits = sprintf ("%0".$padding."d",$digits+1);
echo "<table cellpadding=0 cellspacing=0 border=0><tr align=center>";
$length_digits = strlen($digits);
for ($i=0; $i < $length_digits; $i++) {
if (substr("$digits",$i,1) == substr("$ani_digits",$i,1)) {
$digit_pos = substr("$digits",$i,1);
echo ("<td><img src=$img$digit_pos.gif width=$width height=$height></td>");
} else {
$digit_pos = substr("$ani_digits",$i,1);
echo ("<td><img src=$animated_img$digit_pos.gif width=$width height=$height></td>");
}
}
echo "</tr></table>";
?>

Aber er gibt immer diese fehlermeldung aus:
Warning: split(): REG_EMPTY in /usr/export/www/vhosts/funnetwork/hosting/gothicer/counter/counter.php on line 17

ich kann aber keinen fehler endecken (bin auch kein php profi).
naja hier ist noch der Link zum workshop:
http://www.piranho.de/home/workshops/showworkshop.php?xid=195f50f8991cda4b2f17f0f1b30748d6&cat1=1&cat2=4&id=1700

was hab ich falsch gemacht?

mfg diablo

  1. Hallo Diablo!

    <?php
    [...]
    ?>

    Aber er gibt immer diese fehlermeldung aus:
    Warning: split(): REG_EMPTY in /usr/export/www/vhosts/funnetwork/hosting/gothicer/counter/counter.php on line 17

    Da wäre es ja sinnvoller gewesen, wenn Du vielleicht nur ein paar Zeilen rund um Zeile 17 gepostet hättest, denn wo bitte schön ist Zeile 17? (ach, falls Du Dich das fragst: ja, ich kann zählen ...)
    Ansonsten noch ein Tip zum Debuggen: error_reporting(E_ALL)

    was hab ich falsch gemacht?

    Du hättest vielleicht erstmal PHP lernen sollen.

    Die Tatsache, daß ich Counter nicht mag und grafische Counter schon dreimal nicht hat mit Deinem Problem zwar nicht zu tun, aber ich will's der Vollständigkeit halber mal gesagt haben.

    MfG
    Götz

    --
    Losung für Dienstag, 18. Januar 2005
    Mein Volk soll meiner Gaben die Fülle haben, spricht der Herr. (Jeremia 31,14)
    In Christus wohnt die ganze Fülle der Gottheit leibhaftig. (Kolosser 2,9)
    (Losungslink)
  2. Hi folks!

    list($ip_addr,$time_stamp) = split("|",$ip_array[$i]);

    Das geht ziemlich sicher deshalb nicht, weil split() reguläre Ausdrücke verarbeitet und das "|" da eine spezielle Bedeutung hat.

    probier es mal mit explode, dann sollte es funken.

    Dann sieht die Zeile 17 also so aus:

    list($ip_addr,$time_stamp) = explode("|",$ip_array[$i]);

    Greets - parse_error;

    1. Hallo
      tschuldigung aber man wird doch wohl mal fragen dürfen oder?
      Außerdem kann ich php zwar nicht sehr gut aber ich habmich schon rangesetzt und rumgetüftelt.
      Naja vielen Dabk error werd es gleich mal ausprobieren.

      mfg diablo

      1. Hi folks,

        tschuldigung aber man wird doch wohl mal fragen dürfen oder?

        oehm, ja. hab ich was falsches gesagt?

        Außerdem kann ich php zwar nicht sehr gut aber ich habmich schon rangesetzt und rumgetüftelt.

        sehr loeblich ;-)

        Naja vielen Dabk error werd es gleich mal ausprobieren.

        Bitte.

        Greets - parse_error;

  3. Hello,

    ... und das Du Dich traust, hier so ein unstrukturiertes Chaos zu posten ;-)

    Räum das Script mal ein bisschen auf.

    Außerdem fehlt eine Lockingstrategie. Bei ausreichendem Traffic[1] auf dem Script zerschießt es Dir Deine Counterdatei.

    [1] Hierbei handelt es sich unbedingt nicht um viele gleichzeitige User, sondern nur um eng aufeinanderfplgende Prozesse. Wenn ein User also mit einem Programm (Script) zugreift, schafft er es bestimmt, die Diate zu killen.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau