Counter-Problem - Anfänger versucht Wissen anzuwenden XD

A

Anaki

Aktives Mitglied
Thread Starter
Dabei seit
24.04.2006
Beiträge
2.118
Reaktionspunkte
11
Tach,

ich lerne gerade PHP mit einem Buch und ich verstehe bisher echt alles super, nachvollziehen kein Problem aber anwenden ist ne andere Sache. ^^" Habe mich dann an nen primitiven Countergewagt mit vorgehenden Nullstellen und wollte das über eine switch case Abfrage umsetzen. Aber es kommt ja nicht mal eine Ausgabe was mir sagt, dass e snicht mit der txt Datei zusammenhängen kann, dennw enn die nicht gefunden wird müsste der Wert 1 betragen aber ich krieg ja gar nichts raus und ich weiß nicht wo der Fehler ist obwohl ich es so oft überflogen hab! x__x


PHP:
<html>
<body>
<?php
$test=file_exists("counts.txt");
if($test) {
$datei=fopen("counts.txt","r");
if($datei) {
$dateigroesse=filesize("counter.txt");
$counts=fread($datei,$dateigroesse);
}
fclose("counts.txt")
}

$counts++

$anzahl=strlen($counts);
switch($anzahl) {
case "6":
print($counts);
break;

case "5":
print("0".$counts);
break;

case "4":
print("00".$counts);
break;

case "3":
print("000".$counts);
break;

case "2":
print("0000".$counts);
break;

case "1":
print("00000".$counts);
break;
}

$test=file_exists("counts.txt");
if($test) {
$datei=fopen("counts.txt","w");
fwrite($datei,$counts);
if($datei) {
}
fclose("counts.txt");
}
?>
</body>
</html>
 
Seltsames Coding ... aber jeder fängt ja mal an.
Tip beim Suchen solcher Fehler: ab und zu mal eine Bildschirmausgabe machen an der Du siehst, was gerade abgeht.
Etwa so: "Datei öffnen ok"
Wert gelesen = ...
usw.
 
Und woran liegst jetzt? o__ô
Früher als ichs schon ma versucht hatte mit dem lernen hab ich permanent line fehler gezeigt bekommen sehr praktisch, hab ich jetzt aber nicht mehr
 
Dir fehlen nach dem ersten fclose() und nach dem increment zwei Zeilen darunter die abschließenden ";"
Versuchs damit mal, ansonsten schreib nach jedem Befehl ruhig ein echo "Der Schritt, wo ich gerde bin";, damit du wenigstens weißt, wo das Script abbricht, wenn es abbricht...
Bekommst Du denn sonst Fehlermeldungen? Wenn du gar keine bekommst, ist das eventuell ausgeschaltet. Bei MAMP ist das standartmäßig so eingestellt.
Kann man aber ausschalten (PHP.ini, oder httpd.conf)

gruß
Lukas
 
counts.txt != counter.txt

Soll heissen: Du verwendest in Zeile 4 und 6 die Datei "counts.txt" und in Zeile 8 "counter.txt". Daher wird vermutlich der Wert von $counts nichts sein, weil eine falsche Datei angsprochen wird. Lass dir mal $counts ausgeben.

Ansonsten kann ich die Tipps von oben bzgl. "Debug"-Ausgaben nur unterstreichen, ebenso die fehlenden Semikolon(s).
 
Hi,

probiere es mal damit

PHP:
<?php
// phpcounter 

$fd = fopen("count.txt","r+");  //count.txt die datei in die die counterzahl geschrieben wird.


$count = fgets($fd,1000);

if (! $count)
   $count=0;
rewind($fd);

$count++;

fwrite ($fd, $count);  
fclose ($fd);

echo "<center>Besucher heute:<b>" . $count .;// den Text kannst du natuerlich anpassen
?>
Das hab ich mal gaaaaaanz am anfang programmiert. das ist aber auch noch ohne reload sperre die musste selber einbauen. aber es ist einfachr und kuerzer als deines. außer du willst irgendwelche sonderwuensche. Auf jeden fall kannste dir das script anpassen.;)
 
Ach so, nochwas zu den Fehlermeldungen: Kann sein, dass die einfach nciht wichtig genug sind, um angezeigt zu werden.
Schreibe daher mal am Anfang (also direkt nach dem ersten "<?php") folgenden Befehl:
"error_reporting(E_ALL);"

Damit gibst du an, dass alle Fehler angezeigt werden, auch "Notes", und "Warnings", etc, was im Regelfall auch vom Standart her Unterdrückt wird.

Und um das mit den führenden Nullen hinzubekommen:
Versuch da mal mit der Funktion substr_replace() zu arbeiten. Ist bei SelfPHP ganz gut erklärt.
(Du schiebst Die Nullen dann nicht mehr vor, sondern fügst den Zählerstand in ein vordefeniertes Feld, was nur aus Nullen besteht, ein)

Das würde Dir den, für mich zumindest, unübersichtlichen SWITCH-CASE-Kram ablösen... Nur so als Anregung.

gruß
Lukas
 
Zurück
Oben Unten