Problem mit header-weiterleitung

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

  • Problem mit header-weiterleitung

    Hi,

    also: auf meinem Server funktioniert die header-weiterleitung nicht, wenn der eigentliche HTML-header schon gesendet wurde

    ---------------------------------------
    Warning: Cannot add header information - headers already sent by (output started at /var/www/html/header.php:4) in /var/www/html/header.php on line 5
    ---------------------------------------

    Und der PHP-Code ist:
    ----------------------------------------------
    <?php
    require("lib/functions.php");
    eval ("\$header = \"".gettemplate("header")."\";");
    echo $header;
    header("location:index.php");
    echo $footer;
    ?>
    -----------------------------------------------

    In der functions.php steht nur ne function zum einbinden der Templates

    Das dumme an der ganzen Sache ist
    a) es funktioniert auf meinem localhost
    b) ich nicht weiß, wie ich das Problem lösen soll

    Help me, please

    BIG THX

  • #2
    vor deinem Header darf keine Ausgabe an den Browser geschickt werden.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Hi,

      ok, ich habs nun probiert umzustellen... aber das funktioniert nicht so recht... Die Datei oben war ja nur ein beispiel...

      Kann man auch irgendwie anders weiterleiten?

      Kommentar


      • #4
        Was heisst das funktioniert nich so recht? Das muss funktioniertn


        Versuch mal header("location: index.php"); Vielleicht liegts an dem Leerzeichen das man normalerweise nach Location setzt...das schreibt man normal nich zusammen.

        Und wenn du das jetzt ausgibst vor allem anderen klappts auch...
        Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
        (Albert Einstein)

        Kommentar


        • #5
          und wie hast Du es umgestellt?
          Warning: Cannot add header information - headers already sent by (output started at /var/www/html/header.php:4) in /var/www/html/header.php on line 5

          sagt: header in zeile 5 nicht möglich weil ausgabe in zeile 4 begonnen wurde das is genau dein echo $header;
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            Hier die Login.php wo der Fehler auftritt:

            PHP-Code:
            <?php
              session_start
            ();
              
            $wichtig "sehr";
              require(
            "lib/config.php");
              
              eval (
            "\$header = \"".gettemplate("header_offline")."\";");
              eval (
            "\$login_false = \"".gettemplate("login_false")."\";");
              eval (
            "\$footer = \"".gettemplate("footer")."\";");
               
              
            session_start();
              if(!
            session_is_registered('user') || $_SESSION['user'] == "") {
              if(!isset(
            $_POST['submit'])) {
               echo 
            $header;
               eval (
            "\$login = \"".gettemplate("login")."\";");
               echo 
            $login;
               echo 
            $footer;
              }elseif(!
            $_POST['username'] || $_POST['username'] == "") {
               echo 
            $login_false;
              }elseif(!
            $_POST['password'] || $_POST['password'] == "") {
               echo 
            $login_false;
              }else{
                
            $password md5($password);
                
            $query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
                
            $result = @mysql_fetch_array($query) or die($header.$login_false.$footer);
                if(
            $password != $result['pass']){
                 echo 
            $header;
                 echo 
            $login_false;
                 echo 
            $footer;
                 die;
                }else{
                  
            $user $result['user'];
                  
            session_register('user');
                  
            header("location:admin/index.php");
                 }
              }
              }else
              {
               
            $user $_SESSION['user'];
               echo 
            $header;
               eval (
            "\$login_logout = \"".gettemplate("login_logout")."\";");
               echo 
            $login_logout;
               echo 
            $footer;
              }
             
            mysql_close($db); 
              
            ?>
            Die config.php beinhaltet die mysql-verbindung, sowie das includen der functions.php, die die funktion zum einbinden der html-dateie beinhaltet.

            Der Fehler tritt in Zeile 33 auf: header("location:admin/index.php");

            Kommentar


            • #7
              man dann lies mal richtig:
              KEINE AUSGABE AN DEN BROWSER VOR EINER HEADER ANWEISUNG!!!!
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                Das bringt doch überhaupt nichts wenn du hier deinen gesamten Code reinschreibst...

                Also nochmal:
                Du darfst keine einzige Ausgabe (nicht $footer. $header oder sonst was!) ausgeben wenn du einen header setzen willst. Jetzt schau mal deinen Code an...

                EDIT:
                Hehe...da war jemand schneller
                Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
                (Albert Einstein)

                Kommentar


                • #9
                  @MelloPie und Samson2k: Ja, das hab ich ja kapiert, aber die header-anweisung steht doch so drinne, dass keine Ausgabe vorher erfolgt, oder?

                  Oder bin ich blind?

                  Und wie sollt ich das sonst lösen? Vieleicht ganz am anfang? Geht doch nicht, wegen der überprüfung!

                  Edit: Und mit leerzeichen nach location: funzt dat auch net

                  Kommentar


                  • #10
                    Ähm...ja du bist Blind

                    Schau dir doch mal an wo $footer, $header und $login ausgegeben werden...
                    Ich geh mal davon aus das eine dieser Dinger ausgegeben wird, ich blick bei den If-und Else-Abfragen nich wirklich durch (is alles so chaotisch bei dir).

                    Irgendwas wird vor header() ausgegeben sonst würde die Meldung doch nicht kommen...
                    Zuletzt geändert von Samson2k; 09.11.2003, 11:09.
                    Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
                    (Albert Einstein)

                    Kommentar


                    • #11
                      Hier:
                      ---------------------------------------------------
                      if($password != $result['pass']){
                      echo $header;
                      echo $login_false;
                      echo $footer;
                      die;
                      }else{
                      $user = $result['user'];
                      session_register('user');
                      header("location:admin/index.php");
                      }
                      -----------------------------------------------------

                      Und weiter oben nochmal, aber alles ist doch durch ein IF ELSE abgetrennt!
                      sonst würde ich doch nicht zum header-befehl gelangen

                      Kommentar


                      • #12
                        also rück mal Deinen code anständig ein.
                        Was sollen denn eigentlich die ganzen evals????
                        und dann poste mal deine Fehlermeldung
                        Beantworte nie Threads mit mehr als 15 followups...
                        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                        Kommentar


                        • #13
                          Fehlermeldung:
                          ------------------------------------
                          Warning: Cannot add header information - headers already sent by (output started at /var/www/web142/html/moviewelt/lib/counter.php:72) in /var/www/web142/html/moviewelt/login.php on line 33
                          ------------------------------------


                          Code:
                          PHP-Code:
                          ...
                            }else{
                              
                          $password md5($password);
                              
                          $query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
                              
                          $result = @mysql_fetch_array($query) or die($header.$login_false.$footer);
                              if(
                          $password != $result['pass']){
                               echo 
                          $header;
                               echo 
                          $login_false;
                               echo 
                          $footer;
                               die;
                              }else{
                                
                          $user $result['user'];
                                
                          session_register('user');
                                
                          header("location: admin/index.php");
                               }
                            }
                            }else
                            {
                             
                          $user $_SESSION['user'];
                             echo 
                          $header;
                             eval (
                          "\$login_logout = \"".gettemplate("login_logout")."\";");
                             echo 
                          $login_logout;
                             echo 
                          $footer;
                            }
                          ... 
                          Line 33: header("location: admin/index.php");

                          Die evals sind für die einbindung der templates...

                          Kommentar


                          • #14
                            na dann lies mal deine Fehlermeldung
                            headers already sent by (output started at /var/www/web142/html/moviewelt/lib/counter.php:72)
                            Beantworte nie Threads mit mehr als 15 followups...
                            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                            Kommentar


                            • #15
                              Das ist ja auch noch komisch daran:

                              Line 72: ?>

                              Und davor:

                              PHP-Code:
                              if($Action=="read")
                              {
                                
                              $Counter=fopen($LogFile,"r+");
                                
                              $CurrentCount=fgets($Counter,20);
                                
                              fclose($Counter); 
                              }
                              $show_gesamt $CurrentCount;
                              ?> 
                              $CurrentCount ist die Variable der Besucher
                              Diese wird an show_gesamt übergeben, welche in der statistik.php gebraucht wird...


                              Edit: UND: In der counter.php wird keinerlei echos bzw. evals ausgegeben

                              Kommentar

                              Lädt...
                              X