tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
309
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Ghost2525 Ghost2525 ist offline Grünschnabel
    Registriert seit
    Nov 2005
    Beiträge
    4
    Hallo an alle PHP Coder

    Ich bin hier im Forum eigentlich nicht sehr oft tätig gewesen bis jetzt. Habe aber jetzt ein
    aktuelles Problem welches ich unbedingt lösen muss und einfach ned weiter weiss.

    Auf meiner Seite www.bladedesign.info habe ich eine LOGIN BOX welche ich einerseits
    über den INCLUDE Befehl probiert habe einzubinden und andererseits in dem ich den
    ganzen CODE direkt in der index.php eingebunden habe. Jedesmal kommt der gleiche
    Fehler, beim einbinden via INDCLUDE kommt er auf Zeile 46 + 47 und wenn ich den
    ganzen CODE in der index.php einfüge kommt er dann einfach auf Zeile 428 + 429


    Fehlermeldung nach klick auf Login:

    Warning: Cannot modify header information - headers already sent by (output started at /home/www/web456/html/index.php:6) in /home/www/web456/html/index.php on line 428

    Warning: Cannot modify header information - headers already sent by (output started at /home/www/web456/html/index.php:6) in /home/www/web456/html/index.php on line 429

    Die beiden Fehlermeldungen oben beziehen sich im Script auf die beiden folgenden Zeilen:

    setcookie("id", $user[id],time()+(60*60*24*5), "/", "");
    setcookie("pass", $user[password],time()+(60*60*24*5), "/", "");
    Ich hoffe das mir jemand helfen kann. Für mich ist PHP eigentlich noch NEULAND, denn
    ich habe was PHP anbelangt noch nicht sehr gute Kenntnisse. Aber das was ich weiss
    das kann ich auch umsetzen mit den richtigen Tools.

    Mit freundlichen Grüssen

    Didier Kugler
    Angehängte Dateien Angehängte Dateien
     

  2. #2
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Du musst darauf achten, dass Du vor Funktionen wie setcookie(), header() und in der Regel auch session_start() keinerlei Ausgabe an den Browser schickst.
    Du musst also entsprechende Aktionen (setzen eines Cookies, etc.) entweder so legen, dass sie vor jeder Ausgabe stattfinden oder aber mit dem Output Buffer arbeiten. Dazu setzt Du an den Anfang des Scripts den Befehl ob_start() und an's Ende den Befehl ob_end_flush().
    Der letztere Weg ist zwar der einfachere, aber der erste ist der bessere.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  3. #3
    Ghost2525 Ghost2525 ist offline Grünschnabel
    Registriert seit
    Nov 2005
    Beiträge
    4
    Zitat Zitat von Dennis Wronka
    Du musst darauf achten, dass Du vor Funktionen wie setcookie(), header() und in der Regel auch session_start() keinerlei Ausgabe an den Browser schickst.
    Du musst also entsprechende Aktionen (setzen eines Cookies, etc.) entweder so legen, dass sie vor jeder Ausgabe stattfinden oder aber mit dem Output Buffer arbeiten. Dazu setzt Du an den Anfang des Scripts den Befehl ob_start() und an's Ende den Befehl ob_end_flush().
    Der letztere Weg ist zwar der einfachere, aber der erste ist der bessere.
    Hi Dennis

    Ich habe deinen Vorschlag mit oB_end_flush(); ( der Code wurde vor den Abschluss ?> gesetzt) . Ausprobiert bei beiden einbindungs Varianten und es kommen immer noch die gleichen Fehler. Ich habe Dir eine PM mit meiner ganzen Seite als ZIP zugestellt. Wenn Du Zeit und Lust hast währe ich froh wenn Du den restlichen Code mal anschauen könntest. Es kann sein das vielleicht an einem anderen Ort noch ein Fehler ist oder etwas was sich mit dem Code vom Script beisst.

    Grüsse Didier
     

  4. #4
    Avatar von Tucker
    Tucker Tucker ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Riesa
    Beiträge
    428
    Du musst direkt nach dem <?php die Funktion ob_start(); setzen. Davor darf nichts mehr stehen an PHP- Code. Als letztes setzt du vor den beendenden ?>- Tag ob_end_flush(); .
    Du musst allerdings auch aufpassen, wenn du die Variante wählst, dass du vor ob_start(); keine andere Datei mit z.B. include() einbettest. Oder du überprüfst, dass im Falle dessen, die eingebundene Datei keine Ausgabe startet.
     
    Wenn man der freudschen psychosexuellen Theorie über Eros und Tanatos glaubt, bleibt eine unbeantwortbare Frage: Was hat Programmieren mit der Libido und sexueller Befriedigung zu tun?

  5. #5
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    So wie ich das sehe wird bei Dir auch alles in der index.php includet.
    Dementsprechend rate ich Dir einfach mal das hier
    PHP-Code:
    <?php
    ob_start
    ();
    ?>
    ganz an den Anfang (also noch vor <!DOCTYPE ...) zu setzen und das hier
    PHP-Code:
    <?php
    ob_end_flush
    ();
    ?>
    ganz an's Ende (also hinter </html>).
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  6. #6
    Ghost2525 Ghost2525 ist offline Grünschnabel
    Registriert seit
    Nov 2005
    Beiträge
    4
    Zitat Zitat von Dennis Wronka
    So wie ich das sehe wird bei Dir auch alles in der index.php includet.
    Dementsprechend rate ich Dir einfach mal das hier
    PHP-Code:
    <?php
    ob_start
    ();
    ?>
    ganz an den Anfang (also noch vor <!DOCTYPE ...) zu setzen und das hier
    PHP-Code:
    <?php
    ob_end_flush
    ();
    ?>
    ganz an's Ende (also hinter </html>).
    Hi Dennis

    Du bist ein richtiger GOLDSCHATZ, es klappt jetzt wunderbar. In dem Fall ist die englishe
    Tutorial Anleitung auf www.techtuts.com ned ganz korrekt.

    Grüsse

    Didier Kugler
     

  7. #7
    Avatar von Tucker
    Tucker Tucker ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Riesa
    Beiträge
    428
    Aber Dennis, mal was anderes. Es ist doch eigentlich egal, wo genau die entsprechende ob_start(); Funktion steht im HTML- CODE. Das Dokument wird doch eh serverseitig verarbeitet. Und erst wird der PHP- Code verarbeitet, eh das HTML- Dokument an den Browser gesendet wird, oder hab ich einen Denkfehler?
     
    Wenn man der freudschen psychosexuellen Theorie über Eros und Tanatos glaubt, bleibt eine unbeantwortbare Frage: Was hat Programmieren mit der Libido und sexueller Befriedigung zu tun?

  8. #8
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Sobald etwas ausgegeben wird geht es zum Versand zurueck an den Web-Server und von dort in der Regel gleich zum Browser. Zuerst muessen zusaetzliche Header-Angaben zurueckgehen, denn sobald der Header einmal abgeschlossen ist kann kein zusaetzlicher Header mehr gesendet werden.
    Sobald man irgendwas ausgibt was kein Header ist, ob nun <html> oder <!DOCTYPE ...> oder auch nur ein Leerzeichen gilt der Header als beendet und man ist beim Content angekommen.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  9. #9
    Ghost2525 Ghost2525 ist offline Grünschnabel
    Registriert seit
    Nov 2005
    Beiträge
    4
    An euch beide nochmals einen recht herzlichen Dank für die Prompte
    Hilfeleistung. Wenn meine Seite fertig ist wird sie schon was her machen.

    Inhalte meiner Seite :

    Login Bereich
    |_ Profil bearbeiten
    |_ Memberliste
    |_ Avatar bearbeiten
    |_ PM System

    und noch ein paar kleine Sachen mehr. Unteranderem wird es auch diverse
    Tutorials auf meiner Seite geben und sofern ich ein gutes TutorialSystem
    für den Einbau auf meiner Seite finde wird es das dann auch geben.
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 08.10.10, 16:39
  2. Antworten: 4
    Letzter Beitrag: 02.03.10, 14:04
  3. Header bereits gesendet! Mal wieder...
    Von joeboe im Forum PHP
    Antworten: 4
    Letzter Beitrag: 31.10.08, 16:29
  4. Popup schließen nachdem Eigenschaften gesendet wurden
    Von chocox im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 13.03.08, 02:59
  5. Mit PHP prüfen ob Daten von Flash gesendet wurden?
    Von Wuffel11 im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 23.04.07, 13:01