Gästebuch einpassen

Ne leider geht das auch nicht ... Sry aber da binsch mit meinem Latein am Ende ... vlt schreibt ja mal ein anderer ...

Wünsch dir viel Glück

MFG

MOE
 
Hallo,

falls du es immer noch brauchst, habe ich hier mal das Gästebuch an die Stelle rein, an der du gesagt hast (und getestet, bei mir ging das, also müsste es bei dir auch gehen):

Ich habe die Datei im Anhang (gezippt, da keine PHP-Dateien erlaubt sind) mitgeschickt, weil das ca. 4000 Zeichen zu viel waren..

MfG
Fabsch
 

Anhänge

Zuletzt bearbeitet:
Hi Fabsch(,)

Ich kann es kaum glauben, dass Du hier einfach so die Lösung für meine Probleme bereitstellst. 1. Vielen Dank, Du hast mir sehr weiter geholfen!

Nur verstehe ich nicht was Du gemacht hast, dass es nun klappt? Wäre echt nett wenn Du mir dies noch erklären könntest.

Merci! (Dir bin ich was schuldig, lass es mich wissen, suchst Du eine Unterkunft in der Schweiz :-))

Grüsse + Gute Nacht
ominglow
 
Hallo,

ich hab das eigentlich nur an die Stelle reingefügt und am Anfang die Datei erstellen lassen, falls die noch nicht existiert (mit fopen und dem mode a, der die Datei anlegt, falls sie nicht existiert).
Ansonsten habe ich nichts verändert :)

Aber was ging denn vorher eigentlich nicht bzw. welche(r) Fehler wurde(n) angezeigt?

MfG
Fabsch
 
ich denke nicht dass diese erklärung sehr verständlich ist für jemanden, der überhaupt keine ahnung von php hat.

dein gästebuch öffnet einfach bei jedem aufruf eine datei (guestbook.dat heisst diese bei dir, glaub ich). es gibt auch gästebücher, die die daten aus einer datenbank holen, doch das lassen wir mal...
in dieser datei werden alle einträge gespeichert... es könnte auch eine Textdatei sein...
mit dem php-Befehl fopen wird diese Datei geöffnet, mit fclose demnach wieder geschlossen. wenn ein neuer eintrag gemacht wird, wird zusätzlich noch in die datei geschrieben, ansonsten wird sie nur geöffnet, die inhalte werden geholt bzw. angezeigt und die datei wird wieder geschlossen.
und flock "verriegelt" die Datei, wie das Wort schon sagt.

Die Fehlermeldung "Cannot modify header (...)" lässt vermuten, dass irgendwo eine Weiterleitung stattfindet im Gästebuchscript, die durch die php-Funktion header ausgeführt wird. Vor dieser Funktion darf im Script keine Ausgabe stehen, ausser man umgeht dieses Problem mit anderen Funktionen.
Wenn man dann verschiedene Dateien in verschiedene andere Dateien einfügt mit der Funktion include kann es schnell mal passieren, dass irgendwo eine Ausgabe steht, die dort nicht sein sollte...ehja, dis Problem isch ja glöst... ;)


PS: hab schon gedacht "warum schreibt der 'Merci' und nicht 'Danke'". Schnell hab ich die Erklärung gefunden - bin nicht der einzige Schweizer hier ;) ***Schweizerdeutsche Anmerkungen sind wohl nicht erlaubt hier?! - ist ja ne Fremdsprache...***
 
Hallo,

ich denke nicht dass diese erklärung sehr verständlich ist für jemanden, der überhaupt keine ahnung von php hat.

dein gästebuch öffnet einfach bei jedem aufruf eine datei (guestbook.dat heisst diese bei dir, glaub ich). es gibt auch gästebücher, die die daten aus einer datenbank holen, doch das lassen wir mal...
in dieser datei werden alle einträge gespeichert... es könnte auch eine Textdatei sein...
mit dem php-Befehl fopen wird diese Datei geöffnet, mit fclose demnach wieder geschlossen. wenn ein neuer eintrag gemacht wird, wird zusätzlich noch in die datei geschrieben, ansonsten wird sie nur geöffnet, die inhalte werden geholt bzw. angezeigt und die datei wird wieder geschlossen.
und flock "verriegelt" die Datei, wie das Wort schon sagt.

Die Fehlermeldung "Cannot modify header (...)" lässt vermuten, dass irgendwo eine Weiterleitung stattfindet im Gästebuchscript, die durch die php-Funktion header ausgeführt wird. Vor dieser Funktion darf im Script keine Ausgabe stehen, ausser man umgeht dieses Problem mit anderen Funktionen.
Wenn man dann verschiedene Dateien in verschiedene andere Dateien einfügt mit der Funktion include kann es schnell mal passieren, dass irgendwo eine Ausgabe steht, die dort nicht sein sollte...ehja, dis Problem isch ja glöst... ;)

Ok, war halt etwas unverständlich ;)
Das kam davon, weil ich mir den Beitrag nicht mehr durchgelesen habe. Sollte ich in Zukunft auch machen.

Aber: der Fehler ist noch nicht behoben.. hab ich nicht gesehen, dass da Redirects (Weiterleitungen) mit eingebaut waren.
Habe das nämlich ohne das drumrum getestet und da wurden vorher noch keine Header gesendet.
Aber, es kann eigentlich einfach so bleiben, nur am Anfang muss man noch die Funktion "ob_start()" reinmachen., die den Ausgabepuffer aktiviert und damit die Header (also am Anfang, wo HTML angefangen wird, werden glaube mit <head> welche ausgegeben) noch nicht gleich gesendet werden, also kann man auch danach Redirects mit einfügen, welche eigentlich einfach nur dem Browser über Header sagen, dass er eine andere URL aufrufen soll.

@ominglow: habe den Anhang ausgewechselt, damit alles ohne Fehler funktioniert, solltest du dir das neue herunterladen und das benutzen.

MfG
Fabsch
 
jep das mit ob_start() geht so... siehe hierfür http://de.php.net/manual/de/function.ob-start.php.
...und am schluss ganz unten ein ob_flush() (Link).

Denn ob_start() aktiviert den Ausgabepuffer nur, mit ob_flush() sendet man den Inhalt des Puffers erst.

alternative: ob_end_flush(): hierbei wird der ausgabepuffer gelöscht nachdem er gesendet wurde, bei ob_flush() bleibt er erhalten.
 
Denn ob_start() aktiviert den Ausgabepuffer nur, mit ob_flush() sendet man den Inhalt des Puffers erst.

Nicht ganz. Man kann das ob_flush() auch weglassen, es wird trotzdem ausgegeben, wenn das Ende des Skriptes erreicht ist.
Ich mache das eigentlich auch immer hin, diesmal habe ich es aber vergessen :rolleyes:
 
kann sein... ich habe es immer gemacht, da ich es als korrekt ansehe. Denn es gibt viele Dinge, die auch gehen, wenn man Sachen weglässt, doch plötzlich geht's dann nicht mehr, aus irgendeinem Grund. Doch es ist auch möglich, dass es in jedem Fall ohne ob_flush() bzw. ob_end_flush() geht. Weiss ich nicht. Mit ob_flush() geht's auf jeden Fall. ;)
 
Zurück