header() und echo Ausgaben...

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

  • header() und echo Ausgaben...

    Hi,

    ich plane gerade ein neues Script in dem ich alle inhalte in eine zentrale index.php als module per require() einbinden möchte.

    Ich möchte jedoch auch, das innerhalb der Module redirects via header("Location: xxx") stattfinden können.

    Wenn nun in der index.php bereits eine Ausgabe stattgefunden hat, würde das nicht mehr gehen bzw. zu einem Fehler führen. Trotzdem funktioniert dieses testscript komischerweise:

    PHP-Code:
    <?php
    error_reporting
    (E_ALL E_NOTICE);


    echo 
    "test";
    header("Location: test.php");

    ?>

    Wieso??

    natürlich könnte man das Problem durch Output buffering umgehen oder folgendes benutzen:

    PHP-Code:
    function Redirect($url) {
           if(
    headers_sent()) {
                   echo 
    "<script type='text/javascript'>location.href='$url';</script>";
           } else {
                   
    header("Location: $url");
           }

    Trotzdem würde ich mich über eine Erklärung für obiges freuen...nur um die Unsicherheit zu beseitigen, das es vielleicht nur ein Zufall ist und so etwas normaleriwese zu Fehlern führen müsste.

    Grüße, Florian

  • #2
    Re: header() und echo Ausgaben...

    Original geschrieben von ultimazer_1
    Trotzdem funktioniert dieses testscript komischerweise:

    PHP-Code:
    <?php
    error_reporting
    (E_ALL E_NOTICE);
    echo 
    "test";
    header("Location: test.php");
    ?>
    also bei mir funzt es nicht! irgendwo in der php.ini herumgespielt=

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Re: header() und echo Ausgaben...

      Original geschrieben von ultimazer_1
      Wieso??
      xampp hat z.B. als Standard-Einstellung einen kleinen Cache eingestellt. D.h. das "test" landet im Cache und der header kann noch geschickt werden.
      Die Einstellung müsste in php.ini sein *nachguck*

      also in php.ini und ist als Standard-Einstellung von php aus geändert worden:
      Code:
      ; - output_buffering = 4096        [Performance]
      ;     Set a 4KB output buffer.  Enabling output buffering typically results in less
      ;     writes, and sometimes less packets sent on the wire, which can often lead to
      ;     better performance.  The gain this directive actually yields greatly depends
      ;     on which Web server you're working with, and what kind of scripts you're using.

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Hi,

        hehe hab natürlich vergessen auf was für einer Plattform das ganze läuft...aber du hast es mit XAMPP getroffen

        also welche der php.ini's im Ordner "apachefriends\xampp\php" muss ich an welcher Stelle bearbeiten, das das normal php-mäßig wie es sein soll eingestellt ist?

        Danke!

        Grüße, Flo

        Kommentar


        • #5
          normalerweise die in ..apache\bin

          Kommentar


          • #6
            Alles kloa, nu läufts wie es soll , der Fehler kommt

            Gibt es noch andere nicht-standard-einstellungen, die dinge richtig schein lassen, obwohl sie falsch sind?

            Gruß und Danke für die schnellen Antworten , Flo

            Kommentar


            • #7
              du kannst php.net die zip-Version runter laden, reinschauen und vergleichen

              Kommentar


              • #8
                Ok ok,

                ich werds erst mal so lassen und wenn mir was spanisch vorkommt dann entsprechend nachsehen.

                Danke für deine Hilfe.

                Fröhliche Weihnachten und Grüße, Florian

                Kommentar

                Lädt...
                X