header Location Problem

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

  • header Location Problem

    Liebe PHP Gemeinde,

    Ich bitte um Hilfe zu folgendem Problem.

    Ich habe ein Importscript welches quasi in Schleifen durchläuft
    und sich immer wieder via...

    PHP-Code:
    header("Location: ".$goto_url);
    exit(); 
    bis zum letzten Durchlauf, selbst aufrufen soll.

    Das eigenartige (was zumindest ich nicht verstehe) ist, dass wenn ich die URL erneut aufrufe, dass ganze ins Nirvana verläuft und ich ein "Webseite kann nicht angezeigt werden" erhalte. Ändere ich die URL auf eine andere (mit exakt den gleichen GET Parametern funktioniert das ganze.

    PHP-Code:
    header("Cache-Control:no-cache,must-revalidate");
    header("Pragma:no-cache"); 
    wurde auch gesetzt.

    Ist etwas besonderes zu beachten wenn man via header: Location die gleiche Seite reloaden will?

    Danke für die Hilfe!
    Max

  • #2
    Zitat von max479 Beitrag anzeigen
    Ändere ich die URL auf eine andere (mit exakt den gleichen GET Parametern) funktioniert das ganze.
    Aha, und - Zusammenhang? Mit gleichen GET-Parametern ist eine andere Adresse immer noch eine ganz andere Adresse. (Genauso, wie die Adresse eine ganz andere wird, auch wenn man nur die GET-Parameter ändert.)

    Ist etwas besonderes zu beachten wenn man via header: Location die gleiche Seite reloaden will?
    Ja, dass man keine Endlos-Umleitung betreibt, die den Client wiederholt auffordert, die gleiche Ressource abzurufen - das wird dem Client nämlich irgendwann zu blöd, wenn er nicht auch irgendwann mal Daten geliefert bekommt, sondern immer nur den Hinweis, bitte noch mal neu die gleiche Adresse anzufordern.

    Änderung des Querystrings, also bspw. durch Hochzählen eines GET-Parameters, würde schon dazu führen, dass die Adresse eine komplett andere für den Client ist - das reicht manchmal schon aus.
    Aber auch wenn man es damit übertreibt, reagieren manche Clients irgendwann beleidigt. Alternative ist dann eine „Weiterleitung“ per Meta-Refresh - da bekommt der Client wenigstens zwischendrin auch immer mal wieder „echte“ Daten geliefert.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hallo,

      Danke erst mal für deine Hilfe.

      Die URLs unterscheiden sich bei jedem Aufruf, da sich der Start Intervall für die mySQL Datenabfrage immer erhöht.

      Die Seitenreloads hatte ich zuvor via Java Script durchgeführt, was einwandfrei funktioniert hat. Da ich den Scriptablauf jedoch via Cronjob starten will, funktioniert das mit den Java Script Reloads leider nicht.

      Werd mal weiter Fehler suchen...

      Kommentar


      • #4
        Die (Meine) Lösung:
        PHP-Code:
        header("refresh:1;url=$goto_url"); 

        Kommentar


        • #5
          HTTP ist das nicht.

          Kommentar


          • #6
            Was ist nicht HTTP?
            Das Problem meines Cronjobs ist übrigens damit leider auch noch nicht gelöst, da ja eine header Weiterleitung, bzw. ein header Refresh im Cronjob auch ignoriert wird.

            Kommentar


            • #7
              Es gibt keinen Refresh-Response-Header lt. HTTP-Spezifikation, den hatte sich Netscape mal ausgedacht, aber die meisten Browser unterstützen ihn trotzdem.

              Gruß,

              Amica
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Verstehe. Danke für die Info.

                Kann mir jemand einen Tipp geben wie ich dann in einem PHP Script die gleiche, bzw. eine andere URL aufrufen kann, damit es auch über einen Cronjob funktioniert?

                Der Cronjob führt mir leider nie die Weiterleitung durch sondern beendet das Script. Egal ob via JavaScript oder header gelöst.

                Kommentar


                • #9
                  Mit einem (echten) Cronjob befindest du dich idR. in einer ganz anderen Ausführungs-Umgebung für das Script, als einem normalen Webserver-Thread - Limitierungen bzgl. Laufzeit, Speicherverbrauch etc. sollten da keine Rolle spielen. Sprich: Das Script in mehrere Abschnitte zu zerhacken, die sich dann nacheinander selber per Weiterleitung „aufrufen“, sollte eigentlich gar nicht nötig sein.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar

                  Lädt...
                  X