Warning Cannot modify header information

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Warning Cannot modify header information

    Hallo Alle!

    Habe ein Problem mit meinem Umleitungsversuch.

    Die Fehlermeldung:

    Warning: Cannot modify header information -
    headers already sent by (output started at .../index.php:6)
    in .../entry.inc.php on line 47
    Mein Skript in der index.php beginnt ganz oben so:

    PHP-Code:
    <?php
    ob_start
    ();
    session_start();
    include 
    'inc/entry.inc.php';
    time_check();
    ob_end_flush();
    ?>
    Versuche eine Prüfung zu machen, die bei jedem Seitenaufruf checkt, ob der User länger als x Sekunden keine Seite mehr aufgerufen hat, um ihn dann auf eine andere Seite umzuleiten.

    In der entry.inc.php ruft die Funktion time_check() im Falle "länger als x Sekunden keine Eingabe" die Funktion logout() auf und die sieht so aus:

    PHP-Code:
    function logout() 
    {     
        
    header ("Location:logged_out.php");
        
    $sql="UPDATE users 
        SET UserSession=NULL, timeout=NULL 
        WHERE UserSession='"
    .session_id()."'";
         
    mysql_query($sql);

    Leider bin ich mit ob_start() usw. noch nicht zum Ziel gelangt.

    Wundert euch nicht, wenn euch diese Skripte bekannt vorkommen. Habe sie im großen und ganzen hier aus dem Forum zusammengesucht. Mein Dank ist euch gewiss!

    Gibt es ein Problem mit
    PHP-Code:
    include 'inc/entry.inc.php'
    oder woran könnte es noch liegen?

    Bitte um eure Hilfe! THX
    Zuletzt geändert von Smartsoul; 26.11.2005, 14:49.
    [FONT=arial][COLOR=orangered]
    Mein Buchtipp: Gegenseitige Hilfe (Michail Kropotkin)
    [/COLOR]

    ... und nicht vergessen: der Ton macht die Musik ;-)

    ... aber, manchmal ruft man in den (Forum-)Wald hinein und es schallt ganz anders heraus
    [/FONT]

  • #2
    zu faul zum suchen?

    http://www.php-resource.de/forum/sea...der=descending

    http://www.google.de/search?hl=de&q=...le-Suche&meta=
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Nein, eigentlich überhaupt nicht. Suche schon eine ganze Weile, aber vielleicht an den falschen Orten.

      Aber werde mir das gleich mal anschauen!
      [FONT=arial][COLOR=orangered]
      Mein Buchtipp: Gegenseitige Hilfe (Michail Kropotkin)
      [/COLOR]

      ... und nicht vergessen: der Ton macht die Musik ;-)

      ... aber, manchmal ruft man in den (Forum-)Wald hinein und es schallt ganz anders heraus
      [/FONT]

      Kommentar


      • #4
        Hab mich da erneut durchgelesen und bin aber außer auf folgende Meldung auf nicht viel gestoßen, was mir persönlich weiter hilft.

        Aufrufe von header() müssen vor allen anderen Ausgaben an den
        Client erfolgen. Es spielt keine Rolle, ob die Ausgabe durch einen HTML-
        Bereich vor dem Script oder durch das PHP-Script selbst entsteht. Dabei
        reicht als "HTML-Bereich" z. B. bereits ein einziges Leerzeichen vor dem öffnenden PHP-Tag (" <?php").
        Dies ist aber, so weit ich das verstehe, bei mir der Fall (s. Skripte oben), oder?

        Kann ja verstehen, dass euch dieses Thema nervt. Habe sicher auch schon an die 30 Threads zu diesem thema gelesen, aber leider bin ich zu blöd, den Fehler in meiner Programmierung zu finden.
        [FONT=arial][COLOR=orangered]
        Mein Buchtipp: Gegenseitige Hilfe (Michail Kropotkin)
        [/COLOR]

        ... und nicht vergessen: der Ton macht die Musik ;-)

        ... aber, manchmal ruft man in den (Forum-)Wald hinein und es schallt ganz anders heraus
        [/FONT]

        Kommentar


        • #5
          aufgrund deiner geposteten meldung ist das NICHT der fall.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Ich dachte die Ausgabe des HEADERS passiert mit dem
            PHP-Code:
            ob_end_flush 
            ?

            An welcher Stelle macht mein Skript eine unerlaubte Ausgabe?
            [FONT=arial][COLOR=orangered]
            Mein Buchtipp: Gegenseitige Hilfe (Michail Kropotkin)
            [/COLOR]

            ... und nicht vergessen: der Ton macht die Musik ;-)

            ... aber, manchmal ruft man in den (Forum-)Wald hinein und es schallt ganz anders heraus
            [/FONT]

            Kommentar


            • #7
              Ist es das
              PHP-Code:
              session_start() 
              ?
              [FONT=arial][COLOR=orangered]
              Mein Buchtipp: Gegenseitige Hilfe (Michail Kropotkin)
              [/COLOR]

              ... und nicht vergessen: der Ton macht die Musik ;-)

              ... aber, manchmal ruft man in den (Forum-)Wald hinein und es schallt ganz anders heraus
              [/FONT]

              Kommentar


              • #8
                probier es aus ... nur als tipp ... in der meldung steht auch drin, wo du suchen musst!
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Habe session_start() an verschiedene Stellen verschoben. Allerdings erfolglos.

                  In Zeile 6 (index.php) steht
                  PHP-Code:
                  ob_end_flush
                  In Zeile 47 (entry.inc.php) steht
                  PHP-Code:
                  header ("Location:logged_out.php"); 
                  Da hab ich gesucht und obiges gefunden.
                  [FONT=arial][COLOR=orangered]
                  Mein Buchtipp: Gegenseitige Hilfe (Michail Kropotkin)
                  [/COLOR]

                  ... und nicht vergessen: der Ton macht die Musik ;-)

                  ... aber, manchmal ruft man in den (Forum-)Wald hinein und es schallt ganz anders heraus
                  [/FONT]

                  Kommentar


                  • #10
                    O.K.

                    Habe nun

                    PHP-Code:
                    ob_end_flush(); 
                    entfernt bzw. in die entry.inc.php hinter

                    PHP-Code:
                    header ("Location:logged_out.php"); 
                    verschoben und plötzlich ist die Fehlermeldung weg.


                    ABER:

                    Werden jetzt die Header-Daten im Normalfall "User ist immer noch aktiv" überhaupt nicht mehr übermittelt?

                    Es gibt ja an keiner anderen Stelle in meinem Code mehr ein ob_end_flush() ...
                    [FONT=arial][COLOR=orangered]
                    Mein Buchtipp: Gegenseitige Hilfe (Michail Kropotkin)
                    [/COLOR]

                    ... und nicht vergessen: der Ton macht die Musik ;-)

                    ... aber, manchmal ruft man in den (Forum-)Wald hinein und es schallt ganz anders heraus
                    [/FONT]

                    Kommentar


                    • #11
                      tja. schonmal was von if() gehört?
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        Hab ich schon!

                        ... und sogar ausprobiert, aber leider bekam ich dann wieder
                        Warning: Cannot modify header information -
                        mit der entsprechenden Zeilenangabe.

                        Im if-Zweig schicke ich nach logout() mit der Header-Geschichte und im else-Zweig bekommt er das ob_end_flush().

                        Komischerweise durchläuft er scheinbar das ob_end_flush() im else-Zweig, auch wenn if=true ist!!!
                        [FONT=arial][COLOR=orangered]
                        Mein Buchtipp: Gegenseitige Hilfe (Michail Kropotkin)
                        [/COLOR]

                        ... und nicht vergessen: der Ton macht die Musik ;-)

                        ... aber, manchmal ruft man in den (Forum-)Wald hinein und es schallt ganz anders heraus
                        [/FONT]

                        Kommentar


                        • #13
                          zeig mal dein if()
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            Hier ist das if

                            PHP-Code:
                            if ($grenze $auslogglogout();
                                    else
                                    {
                                       
                            ob_end_flush();            
                                        
                            $sql "UPDATE users 
                                        SET timeout=
                            $zeit 
                                        WHERE UserSession='"
                            .session_id()."'";
                                        
                            mysql_query($sql);
                                    } 
                            [FONT=arial][COLOR=orangered]
                            Mein Buchtipp: Gegenseitige Hilfe (Michail Kropotkin)
                            [/COLOR]

                            ... und nicht vergessen: der Ton macht die Musik ;-)

                            ... aber, manchmal ruft man in den (Forum-)Wald hinein und es schallt ganz anders heraus
                            [/FONT]

                            Kommentar


                            • #15
                              bist du sicher, dass dein if() nciht immer erfüllt ist?
                              hast du kontrollausgaben gemacht?
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X