WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Echo-Problem bei Counterscript (Anfängerproblem)

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Echo-Problem bei Counterscript (Anfängerproblem) - 21 Nov 2024 Antworten
im Forum für Webhosting Homepage gefunden:
Echo-Problem bei Counterscript (Anfängerproblem)
steve77do
Pixelschubser
Threadstarter




Beiträge: 2

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

  Profil   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

Ist doch klar, die Images werden schon beim Abarbeiten der For-Schleife ausgegeben.
Speicher den Tag für die Images in der Schleife einfach in einer neuen Variable, meinetwegen $counterimage und denk dabei daran, dass die Variable imemr ergänzt werden muss, also .=
Dort wo jetzt echo $counter steht gibt er momentan natürlich nur den Zahlenwert aus ohne Grafiken, da die Grafiken ja gar nicht mit der Variable $counter in Beziehung stehen. Mach dirt dann einfach echo $counterimage.

  Profil   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

In der switch gibt du ja auch mit echo direkt die -Tags aus. Du mußt sie in eine Variable schreiben:

1:
case "0" : $counter_str .= ""; break;


Der Operator .= hängt dabei die rechte String-Konstante an die linke String-Variable an. Vor der Schleife mußt du noch $counter_str = '' machen um die Variable als leeren String zu initialisieren.

Die Variable gibst du dann mit echo $counter_str aus.

Tipps:
Beachte bitte das einzelne Variablen nicht in Anführungszeichen kommen. Diese sind nur bei String-Konstanten notwendig. Wenn du einfache Anführungszeichen verwendest, sparst du dir das Absichern der doppelten Anführungszeichen mit dem Backslash. Innerhalb von ' werden jedoch keine Variablen und Sonderzeichencodes (wie z.B. \n) interpretiert.

---
Weaverslave

Diese Nachricht wurde geändert von: subjective
  Profil   Website   Editieren   Zitieren
steve77do
Pixelschubser
Threadstarter




Beiträge: 2

Hallo ihr zwei,

super, danke, es hat geklappt

http://steve77do.st.funpic.de/counter_grafisch_switch.php

Auf die Lösung wäre ich von alleine nicht gekommen, auch wenn es mir jetzt natürlich einleuchtet: Tritt Fall 0 ein, gebe img... aus, daher die Bilder vor dem Quellcode und die fehlende Übergabe an den eigentlichen Counter...

Danke

  Profil   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » Echo-Problem bei Counterscript (Anfängerproblem)

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Echo-Problem bei Counterscript (Anfängerproblem) im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8126534    Heute : 452     Gestern : 463     Online : 234     21.11.2024    14:23      3 Besucher in den letzten 60 Sekunden        
alle 20.00 Sekunden ein neuer Besucher
Nach oben