"headers already sent..." Weiterleitung klappt nicht

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

  • "headers already sent..." Weiterleitung klappt nicht

    Hi zusammen!

    Hab nen kleines Login-Script, welches mich nach erfolgreichem Login auf eine andere Seite leiten soll. Dies klappt jedoch irgendwie nicht!

    Die Fehlermeldung die ich erhalte lautet:
    Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/georgeuf/b2b/index.php:11) in /www/htdocs/georgeuf/b2b/index.php on line 93

    Hier der Quelltext:
    PHP-Code:
                  <?php
                    
    }elseif(!isset($_POST['username']) || $_POST['username'] == "") {
                        echo 
    '<p>Bitte geben sie ihren Benutzernamen ein!<br><br><a href="index.php">Zur&uuml;ck</a></p>';
                    }elseif(!
    $_POST['password'] || $_POST['password'] == "") {
                        echo 
    '<form action="index.php" method="post">';
                        echo 
    '<p>Bitte geben sie ihr Passwort ein!<br><br>';
                        echo 
    '<input type="hidden" name="username" value="'.$_POST['username'].'">';
                        echo 
    '<input type="submit" name="zurueck" value="Zur&uuml;ck">';
                        echo 
    '</p>';
                        echo 
    '</form>';
                    }else{
                        
    $password md5($password);
                        
    $query = @mysql_query("SELECT user, pass FROM haendler WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
                        
    $result = @mysql_fetch_array($query) or die('<p align="center">Dieser Benutzername existiert nicht!<br><br><a href="index.php">Zur&uuml;ck</a></p>');
                    if(
    $password != $result['pass']){
                        echo 
    '<form action="index.php" method="post">';
                        echo 
    '<p>Das eingegebene Passwort ist falsch!<br><br>';
                        echo 
    '<input type="hidden" name="username" value="'.$_POST['username'].'">';
                          echo 
    '<br><input type="submit" name="zurueck" value="Zur&uuml;ck"></p>';
                        echo 
    '</form>';
                        die;
                    }else{
                        
    $user $result['user'];
                        
    session_register('user');
                        echo 
    '<p>Ihr Login war erfolgreich.<br>Bitte klicken sie <a href="secure.php">HIER</a> um weiter zu kommen!</p>';
                        
    header('Location: secure.php');
                        exit;
                        }
                    }
                    
    ?>
    Zeile 93 ist die "header('Location:..."

    Über Hilfe wäre ich sehr dankbar!

    Bis dann, Tom

  • #2
    [ ] du willst die forumsuche nach "headers already sent " bemühen
    Kissolino.com

    Kommentar


    • #3
      du kannst nicht etwas ausgeben (siehe eine zeile oben drüber) und dann eine weiterleitung starten...
      such dir eines von beiden aus

      Kommentar


      • #4
        *argh*

        Kommentar


        • #5
          Hmmm, komisch. Jetzt hab ich die Zeile drüber ganz enfernt und bekomme immernoch eins zu eins die gleiche Fehlermeldung!

          Kurios!

          Kommentar


          • #6
            hmm,

            echt komisch *gähn*

            es ist nun mal so, *gähn* daß vor *gähn* header() *gähn* KEINERLEI ausgabe - in welcher form *gähn* auch immer - erfolgen *gähn* darf *fussel*.

            ach ja, *gähn*

            php ist so freundlich, dir zu sagen, wo du *gähn* mit der ausgabe von etwas begonnen hast ... *gähn*

            output started at /www/htdocs/georgeuf/b2b/index.php:11
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              Soll damit Zeile 11 gemeint sein?! Das wäre bei mi eine den Meta-Tags! Wenn gar nichts von dem header stehen darf, dann wäre diese Art von Weiterleitung bei meinem vorhaben ja komplett fehl am Platz!!!
              Und noch was: Lokal, auf meinem Rechner, funktioniert diese Weiterleitung, so wie ich sie oben geposted hab erstklassig und ohne Fehlermeldung (zumindest sehe ich keine). Zum Einsatz kommt XAMPP 1.4.5
              Die Suche habe ich auch bemüht, aber als Laie leider nie wirklich was damit anfangen können, bzw. das probierte hat dann auch nichts geholfen.
              Also, nochmals vielen Dank, Tom

              Kommentar


              • #8
                Such mal in der PHP.INI nach output_buffering, dann weißt du warum es lokal klappt.

                Kommentar


                • #9
                  Original geschrieben von TomFresh
                  Soll damit Zeile 11 gemeint sein?! Das wäre bei mi eine den Meta-Tags! Wenn gar nichts von dem header stehen darf, dann wäre diese Art von Weiterleitung bei meinem vorhaben ja komplett fehl am Platz!!!
                  umgekehrt wird ein schuh draus ...

                  wenn du eh sofoert per location-header weiterleiten willst - wozu sollen dann die meta-tags gut sein ...?
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Aaaalso,

                    nochmal zu dem was ich will. Wenn man auf diese Seite geht, muss man Benutzernamen und Passwort eingeben. Sollten diese beiden Sachen korrekt eingegeben sein, so hatte ich mir es vorgestellt, dass dieses header-Ding mich auf eine andere Seite leitet. Daraus resultiert, dass auf jeden Fall irgendwas vor dieser header-Zeile stehen wird. Sollte dies aber wirklich nicht möglich sein, dann muss ich mir eine andere Möglichkeit zur Weiterleitung suchen, es sei denn einer von euch hat einen tollen Vorschlag!

                    Zum output_buffering: In meinem Fall sehr ärgerlich, da ich nicht die Möglichkeit habe, die php.ini meines Providers so zu verändern, wie sie mein mir lokal vorliegt. Schön wäre es, denn so wäre das Problem (glaube ich) am einfachsten gelöst.

                    Tom

                    Kommentar


                    • #11
                      Ich hab nen tollen Vorschlag. Programmieren hat was mit Struktur zu tun. Also bring mal ne Struktur in deine Programmierung rein!

                      Kommentar


                      • #12
                        Genau das sind die Antworten, die einen Laien immer wieder abschrecken und zum scheitern verurteilen lassen. Wenn ihr es doch wisst, oder eher einer von euch, dann erklärt doch einfach vernünftig wo das Problem liegt, was nicht seien darf und wie es besser wäre oder seien könnte, anstatt hier Postings mit Ratschlägen an die Arbeitsweise zu geben. Das ist jetzt nicht nur hier im Thread ein Problem, sondern in allen anderen, die ich bisher zu diesem Thema durchsucht habe!
                        Nochmal vielen Dank, Tom

                        Kommentar


                        • #13
                          anstatt hier Postings mit Ratschlägen an die Arbeitsweise zu geben.
                          Aber das ist das einzig sinnvolle.

                          wahsaga hats doch schon gesagt. wenn du sowieso weiterleitest, dann brauchst du auch keine metatags. wozu gibst du die also auch.

                          und wenn du jetzt nicht selbstständig auf die idee kommst, die metatags sowie alles andere nur dann auszugeben, wenn keine weiterleitung erfolgt, dann...

                          Kommentar


                          • #14
                            Ich fühle mich immernoch nicht so recht verstanden

                            1. Ich kann mir im Moment kaum vorstellen, dass die Weiterleitung nur deswegen nicht erfolgt, weil in dem Dokument Meta-Angaben vorhanden sind. Das ist zum einen unlogisch und zweitens hab ich es auch schon ausprobiert. Alle Meta-Tags entfernt und wieder wurde die Zeile 11 bemängelt, welche in diesem Fall Informationen zum Stylesheet beinhaltete.

                            2. Wie soll ich bitte alles, was vor dem header-Tag steht entfernen?! Es muss auf jeden Fall erstmal eine Ausgabe statt finden, so dass der Benutzer / Besucher die zwei Felder (Benutzername und Passwort) sieht, sowie einen Button zum Abschicken!!! Er soll ja nicht ohne Weiteres weitergeleitet werden!

                            Ich hoffe, es lag echt nur ein Verständnisproblem vor

                            Tom

                            Kommentar


                            • #15
                              Original geschrieben von TomFresh
                              1. Ich kann mir im Moment kaum vorstellen, dass die Weiterleitung nur deswegen nicht erfolgt, weil in dem Dokument Meta-Angaben vorhanden sind. Das ist zum einen unlogisch
                              nein, ist es nicht.
                              vor dem befehl header() darf keinerlei sonstige datenausgabe an den client gesendet werden, weil die HTTP-header vor allen anderen ausgaben erfolgen müssen, punkt; keine weitere disukssion nötig, sondern einfach so zu akzeptieren.

                              2. Wie soll ich bitte alles, was vor dem header-Tag steht entfernen?! Es muss auf jeden Fall erstmal eine Ausgabe statt finden, so dass der Benutzer / Besucher die zwei Felder (Benutzername und Passwort) sieht, sowie einen Button zum Abschicken!!! Er soll ja nicht ohne Weiteres weitergeleitet werden!
                              du willst also gar nicht bei jedem aufruf des scriptes weiterleiten, sondern nur dann, wenn das formular auch abgeschickt wurde.

                              also sorge dafür, dass der header-befehl auch nur dann ausgeführt wird, und nicht schon beim "normalen" aufruf des scriptes.
                              z.b., in dem du überprüfst, ob $_POST überhaupt werte enthält.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X