Counterprobleme

ZeitenWandel
Habe einen kleinen Minicounter auf textdatei-Basis geamacht.
Nur irgendwie zählt er nichts! Wieso?
Hier erstmal die views.php
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<? 
if(is_writable(views.txt)) {
    $fd fopen("views.txt""r+");
        } else {
    $fd fopen("views.txt""a");
}
    $views fgets($fd10);
     $new_views $views++;
    fwrite($fd$new_views);
fclose($fd);
echo 'Views: '.$views;
?>

Die views.txt ist erstellt.
Da steht aber auch nichts drinnen!

Und hier die counter.php:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
<? 
$onlinetime 36000;

$time time();
$time_to_have $time+$onlinetime;

$ip $_SERVER['REMOTE_ADDR'];
$filename $ip '.txt';

if(is_writable($filename)) {
    $fd fopen($filename"w+");
     $iptime fgets($fd150);
    fclose($fd);
    if($iptime $time) {
        $fd fopen($filename"w+");
        fwrite($fd$time_to_have);
        fclose($fd);
        
if(is_writable(counter.txt)) {
    $fd fopen("counter.txt""r+");
        } else {
    $fd fopen("counter.txt""a");
}
    $counter fgets($fd10);
    $new_counter $counter+1;
    fwrite($fd$new_counter);
fclose($fd);
    } else {
    $fd fopen($filename"a");
     fwrite($fd$time_to_have);
    fclose($fd);
    
if(is_writable(counter.txt)) {
    $fd fopen("counter.txt""r+");
        } else {
    $fd fopen("counter.txt""a");
}
    $counter fgets($fd10);
    $new_counter $counter+1;
    fwrite($fd$new_counter);
    }
}
echo 'Besucher: '.$counter;
?>

Schreibt er auch nix rein in die counter.txt!
Der Counter hier ist mit einer IP-Sperre, damit nicht alle Klicks gezählt werden, dafür ist die views.php ja da!

Kann mir jemand sagen, wo der Fehler ist?
Ich kann Textdateien sowas von nicht ab Mit den Köpfen zusammen schlagen

Danke sehr im Vorraus!
Taz
Hi,
probier es doch mal so Augenzwinkern

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
$FileViews 'views.txt'; 

if(file_exists($FileViews) && is_writable($FileViews)) {
    $fp    fopen($FileViews'r+b');
    $Views floatval(fgets($fp));
    fwrite($fp, ++$Views);
    fclose($fp);
    
    echo 'Views: '.$Views;
}
else {
    echo 'Die Datei "'.$FileViews.'" ist nicht vorhanden, oder nicht beschreibbar!';
}
ZeitenWandel
Bei dir stimmt auch irgendwas nicht mhhh.... ???

Hab ca. 6 mal aktualisiert. Hab jetzt nach den Aktualisierungen schon Views: 1.2131214121312E+31 Seufzen

Driss Textdateien ^^
Taz
Sorry, hatte das rewind() vergessen:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
$FileViews 'views.txt'; 

if(file_exists($FileViews) && is_writable($FileViews)) {
    $fp    fopen($FileViews'r+b');
    $Views floatval(fgets($fp));
    rewind($fp);
    fwrite($fp, ++$Views);
    fclose($fp);
    
    echo 'Views: '.$Views;
}
else {
    echo 'Die Datei "'.$FileViews.'" ist nicht vorhanden, oder nicht beschreibbar!';
}
ZeitenWandel
Ah super, das klappt breites Grinsen

Haste auch ne Lösung für das 2. Problem, wieso er keine IP's speichert?
Taz
Du fauler Sack du hrhr...
Ich habe dir ebend mal eine kleines Counter Script geschrieben...
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
$SperrZeit   3600// 1 Stunde
$IpFile      './ips/'.$_SERVER['REMOTE_ADDR'].'.txt';
$CounterFile 'counter.txt';
$Access      TRUE;
$Counter     0;

// Datei Exestiert, Besucher war also schon mal da
if(file_exists($IpFile)) {
    // Wann war der Besucher da?
    if((filemtime($IpFile) + $SperrZeit) > time()) {
        // Besucher ist innerhalb der SperrZeit wieder da, wird also nicht gezählt.
        $Access FALSE;
    }
    else {
        // Besucher erneut zählen, die Sperrzeit ist vergangen
        touch($IpFile);
    }
}
// Besucher war noch nie da! Zählen
elseif(($fp = @fopen($IpFile'wb')) !== FALSE) {
    fclose($fp);
}
else {
    echo 'Die Datei "'.$IpFile.'" konnte nicht errstellt werden!';
}

if(file_exists($CounterFile) && is_writable($CounterFile)) {
    if($Access) {
        // Counter erhöhen und auslesen
        $fp      fopen($CounterFile'r+b');
        $Counter floatval(fgets($fp));
        rewind($fp);
        fwrite($fp, ++$Counter);
        fclose($fp);
    }
    else {
        // Counter nur auslesen
        $Counter floatval(file_get_contents($CounterFile));
    }
}
else {
    echo 'Die Datei "'.$CounterFile.'" ist nicht vorhanden, oder nicht beschreibbar!';
}

echo 'Besucher: '.$Counter;
Blacksoul
So lernst du aber nie etwas Flo Augen rollen
ZeitenWandel
Japp.
Ich schau mir nochmal alle Funktionen an.
Danke Taz smile Du Arbeitstier breites Grinsen Workaholic Lachen
Doughboy
Hab mir den jetzt einfach mal geschnappt ^^
Blacksoul
ich glaub, dass stört hier keinen mehr ^^