header("refresh:3;url=test.php") funktioniert nicht immer

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

  • header("refresh:3;url=test.php") funktioniert nicht immer

    Moinmoin,


    habe mir eine function in meinem php script geschrieben die mir
    'das' [COLOR=Red]header("refresh:3;url=test.php") [COLOR=Black]'zusammenbaut', funktioniert [/COLOR][/COLOR]
    [COLOR=Red][COLOR=Black]auch wenn ich es ziemlich am anfang des scriptes aufrufe, wenn i es [/COLOR][/COLOR]
    [COLOR=Red][COLOR=Black]aber kurz vor schluss aufrufe funktioniert es nicht, also das refresh funzt [/COLOR][/COLOR]
    [COLOR=Red][COLOR=Black]nicht, das script schon, hat jemand eine idee?, i verstehs nicht....[/COLOR][/COLOR]
    [COLOR=Red][COLOR=Black]
    [/COLOR][/COLOR]
    [COLOR=Red][COLOR=Black]ps: bin php frischling[/COLOR][/COLOR]
    [COLOR=Red][COLOR=Black]
    [/COLOR][/COLOR]
    [COLOR=Red][COLOR=Black]vG[/COLOR][/COLOR]
    [COLOR=Red][COLOR=Black]
    [/COLOR][/COLOR]
    Last edited by Charly013; 03-10-2022, 16:51.

  • #2
    Vor dem Aufruf von header() darf keinerlei Ausgabe stattfinden.

    Comment


    • #3
      Bitte mal das hier lesen.

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

      Comment


      • #4
        Originally posted by h3ll View Post
        Vor dem Aufruf von header() darf keinerlei Ausgabe stattfinden.

        danke f. die Antwort, leider hab i sie nicht wirklich verstanden, was ist eine Ausgabe?

        ausgabe auf/in Konsole?, Datei? .....


        wie bereits gesagt, rufe i die function recht frueh im script auf funktioniert es, kurz vorm
        beenden des scripts nicht dh. die testausgaben in der function werde ausgefuehrt nur der
        refresh nicht




        hier meine Function (vorsicht! ist vom php dummy)



        PHP Code:
        function set_refresh() {

        echo 
        "<br> SET_REFRESH FUNCTION CALLED <br>";
        $refreshtime substr(round(microtime(true)),-1); # letzte stelle der zeit
        $refti substr(round((11 $refreshtime)),-1);

        if (
        $refti 5){$refti--;} # wenn >5 dann -1 da machmal zu spaet refresht

        $refurl ";url=test.php";
        $h "refresh:".$refti.$refurl// Refreshes after x seconds
        echo "<br> heAder: ".$h." > ".$refreshtime." < <br>";
        $GLOBALS["refresh_string"] = $h
        header ($h);
        echo 
        "  Refresh00 ".date(" H:i:s "). $refti"     "# testausgabe 
        Last edited by Charly013; 03-10-2022, 22:19.

        Comment


        • #5
          Mit Ausgabe meine ich Ausgaben in den HTTP-Response-Body (also in dem Fall "echo"). Da header() in den HTTP-Response-Header schreiben möchte, dieser aber vor dem Body an den Browser gesendet werden muss, kann nach einer gestarteten Ausgabe in den HTTP-Response-Body kein Header mehr gesendet werden.

          Wenn header() nicht in den Header schreiben kann, gibt es eine Fehlermeldung von PHP. Diese sollte man lesen, dann erfährt man auch die fehlerhafte Stelle im Code, in dem die verantwortliche Ausgabe stattfindet.

          Comment


          • #6
            wenn ich das jetzt richtig verstehe duerfte meine function ja gar nicht funktionieren denn vor dem header Befehl ist/wird ja immer ein echo Befehl
            aufgerufen, oder sehe ich das falsch?

            Comment


            • #7
              Es gibt auch noch Dinge wie Output-Buffering, die das Verhalten beeinflussen können. Das ändert aber nichts daran, dass der Code vom Prinzip her falsch ist, weil ein echo vor einem header() überhaupt keinen Sinn macht.

              Comment

              Working...
              X