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

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

  • 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]
    Zuletzt geändert von Charly013; 03.10.2022, 16:51.

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

    Kommentar


    • #3
      Bitte mal das hier lesen.

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

      Kommentar


      • #4
        Zitat von h3ll Beitrag anzeigen
        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 
        Zuletzt geändert von Charly013; 03.10.2022, 22:19.

        Kommentar


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

          Kommentar


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

            Kommentar


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

              Kommentar

              Lädt...
              X