Warning Cannot modify header information

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by 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 |


    Comment


    • #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]

      Comment


      • #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]

        Comment


        • #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 |


          Comment


          • #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]

            Comment


            • #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]

              Comment


              • #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 |


                Comment


                • #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]

                  Comment


                  • #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]

                    Comment


                    • #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 |


                      Comment


                      • #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]

                        Comment


                        • #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 |


                          Comment


                          • #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]

                            Comment


                            • #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 |


                              Comment

                              Working...
                              X