Hallo Leute,
ich bin gerade dabei, PHP zu lernen, bin also noch "Frischling". Eine Übung in meinem Lehrbuch ist die Erstellung eines Besuchercounters, bei dem die Zahlenwerte durch Grafiken ausgetauscht werden sollen.
Es gibt 2 Lösungsansätze, einen, der vom Quellcode her recht vereinfacht ist (über strlen die Anzahl der Counterzeichen auslesen, anschließend in einer for-Schleife über substr die Einzelziffern auslesen, die Ergebnisse einer Variable übergeben, die wiederum Bestandteil eines img-Tags in HTML ist, d.h. aus dem ausgelesenen "1" wird "1.gif", usw) und als zweiten noch den umständlicheren Weg über switch, bei dem jede Zahl des Counters durch eine Grafik ersetzt wird.
Mit Variante 1 hatte ich kein Problem, sie wird korrekt dargestellt (inkl. Cookieabfrage), in der Switch-Variante ist jedoch irgendwo ein Bug, den ich partout nicht finde.
Hier die funktionierende Version 1 (vereinfacht):
Version 1 -> so soll es später quellcodetechnisch ausgegeben werden
und hier die Bugvariante mit switch:
Bug-Version 2 -> ein Blick in den Quellcode zeigt, daß die Grafiken für den Counter zwar ausgegeben werden, aber fälschlicherweise vor dem html-Quellcode. In der eigentlichen Ausgabezeile wiederum erscheint weiterhin nur der Text-Counter. Was mache ich falsch? Ich hab doch im PHP-Teil gar kein echo definiert, erst später im HTML-Teil!?
Hier mein Quellcode (ich hoffe mal, es wird alles korrekt dargestellt...):
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:
46: |
"; break;
case "1" : echo ""; break;
case "2" : echo ""; break;
case "3" : echo ""; break;
case "4" : echo ""; break;
case "5" : echo ""; break;
case "6" : echo ""; break;
case "7" : echo ""; break;
case "8" : echo ""; break;
case "9" : echo ""; break;
}
}
?>
Counter
Dies ist der . Besuch.
|
Wie gesagt, das Script ist etwas umständlich, aber ich will es halt zu Übungszwecken mit switch aufbauen. Theoretisch hätte ich auch die 2 PHP-Blöcke oben zu einem zusammenfassen können und hier und da vereinfachen können, aber der Übersichtlichkeit halber lasse ich es mal in der langen Version. Nur wo ist der Bug?
Danke für die Hilfe
Stefan