Kris: PHP Redirect ?

gibt es einen simplen Redirect im PHP ?

Code so ungefähr wie folgt aussehen (stark vereinfacht) :

if ($xyz == 0) { "go back" }

"go back" = Redirect auf die Seite zuvor :)

  1. Ahoi Kris,

    gibt es einen simplen Redirect im PHP ?

    es besteht die möglichkeit mit einer Kombo aus $_SERVER['HTTP_REFERER']
    und header("Location:") so etwas zu "simulieren", allerdings kann
    $_SERVER['HTTP_REFERER'] vom Benutzer AFAIK manipuliert werden.

    MfG

    --
    Alle Angaben wie immer ohne Gewähr
    \     \           /    /              \    \          /     /
     \     \         /    /                \    \        /     /
      \     /´¯.l.¯\    /                  \   /´¯.l.¯\     /
      |    l   .l.  (¯ '\                   /' ¯)  .l.   1    |
      l    l   .l.   \   \                 /   /   .l.   1    1
      l    l´¯.l´¯.l  \  '|               |'  /  1.¯´1.¯´1    1
      \                                                       /
    1. Ahoi Kris,

      gibt es einen simplen Redirect im PHP ?

      es besteht die möglichkeit mit einer Kombo aus $_SERVER['HTTP_REFERER']
      und header("Location:") so etwas zu "simulieren", allerdings kann
      $_SERVER['HTTP_REFERER'] vom Benutzer AFAIK manipuliert werden.

      MfG

      also irgendwie weiß ich nicht ob du mich verstanden hast :)

      ich habe auf meiner Hauptseite ne Menge Checkboxen und Textareas ...
      wenn man dann auf den untersten Button klickt (wo das Form Tag aufhört), dann schickt er dich auf die nächste Seite, die die übergebenen Variablen dann verarbeitet. Wenn jedoch NIX angeklickt wurde und in keiner Textarea was steht (soweit so gut das geht ja auch alles vom proggen her sehr einfach) ... will ich eine Abfrage machen bevor er den Content ausspuckt und wenn eben NIX weitergegeben wurde, dann soll er direkt wieder auf die Seite zurückspringen. Seitenname kann ich ja auch fest angeben ...

      aber ich hab halt kA wie der Befehl zum zurückspringen bzw. zu einer Seite springen ist :/

      1. Ahoi Kris,

        aber ich hab halt kA wie der Befehl zum zurückspringen bzw. zu einer Seite springen ist :/

        header("Location: script.php");
        fertig.

        MfG

        --
        Alle Angaben wie immer ohne Gewähr
        \     \           /    /              \    \          /     /
         \     \         /    /                \    \        /     /
          \     /´¯.l.¯\    /                  \   /´¯.l.¯\     /
          |    l   .l.  (¯ '\                   /' ¯)  .l.   1    |
          l    l   .l.   \   \                 /   /   .l.   1    1
          l    l´¯.l´¯.l  \  '|               |'  /  1.¯´1.¯´1    1
          \                                                       /
        1. Ahoi Kris,

          aber ich hab halt kA wie der Befehl zum zurückspringen bzw. zu einer Seite springen ist :/

          header("Location: script.php");
          fertig.

          MfG

          19 <?
          20 $tt=0;
          21 for ($t=1;$t<=sizeof($reihe2);$t++) {
          22           if ($cb[$t] == $t or $ta[$t] != "") {$tt = 1;}}
          23 if ($tt == 0) {header("Location: v2_proggie.php");}
          24 ?>

          hab ich probiert ...
          raus kommt :

          Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/xxx/xxx/v2_proggie_2.php:11) in /xxx/xxx/xxx/xxx/v2_proggie_2.php on line 23

          1. Moin!

            23 if ($tt == 0) {header("Location: v2_proggie.php");}

            Zwei Fehler:

            1.) ->

            Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/xxx/xxx/v2_proggie_2.php:11) in /xxx/xxx/xxx/xxx/v2_proggie_2.php on line 23

            Du darfst zuvor einfach nichts, nichts aber auch gar nichts an den Browser senden.

            2.) Du muss eine komplette URI bauen, also mit http://servername/verzeichnis... Ein relativer Verweis nur mit dem Skriptname tut es (mit sehr vielen Browsern) nicht.

            MFFG (Mit freundlich- friedfertigem Grinsen)

            fastix®

            --
            Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
            1. Moin!

              23 if ($tt == 0) {header("Location: v2_proggie.php");}

              Zwei Fehler:

              1.) ->

              Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/xxx/xxx/v2_proggie_2.php:11) in /xxx/xxx/xxx/xxx/v2_proggie_2.php on line 23

              Du darfst zuvor einfach nichts, nichts aber auch gar nichts an den Browser senden.

              stimmt :)

              2.) Du muss eine komplette URI bauen, also mit http://servername/verzeichnis... Ein relativer Verweis nur mit dem Skriptname tut es (mit sehr vielen Browsern) nicht.

              bei Opera, Firefox und IE funktionierts reibungslos oO

              MFFG (Mit freundlich- friedfertigem Grinsen)

              fastix®

              so long

              KRIS :)

              1. Moin!

                2.) Du muss eine komplette URI bauen, also mit http://servername/verzeichnis... Ein relativer Verweis nur mit dem Skriptname tut es (mit sehr vielen Browsern) nicht.
                bei Opera, Firefox und IE funktionierts reibungslos oO

                Mach es einfach richtig, spart später die Fehlersuche.

                MFFG (Mit freundlich- friedfertigem Grinsen)

                fastix®

                --
                Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
          2. Ahoi Kris,

            aber ich hab halt kA wie der Befehl zum zurückspringen bzw. zu einer Seite springen ist :/

            header("Location: script.php");
            fertig.

            MfG

            19 <?
            20 $tt=0;
            21 for ($t=1;$t<=sizeof($reihe2);$t++) {
            22           if ($cb[$t] == $t or $ta[$t] != "") {$tt = 1;}}
            23 if ($tt == 0) {header("Location: v2_proggie.php");}
            24 ?>

            hab ich probiert ...
            raus kommt :

            Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/xxx/xxx/v2_proggie_2.php:11) in /xxx/xxx/xxx/xxx/v2_proggie_2.php on line 23

            geht nun
            hatte folgenden vergessen :

            Da darfst Du aber bis dato nichts gesendet haben (fastix)

            :)

        2. Hi Daniel,

          header("Location: script.php");

          Für Location muss eine absolute URI angegeben werden, wie hier auch schon oft erwähnt wurde.

          MfG, Dennis.

          --
          Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
          Schon gewusst, dass Bugs und Feature Vorschläge für das CForum ins Entwicklerforum oder in den BugTracker von WWWTech gehören und nicht hier her?
      2. Moin!

        aber ich hab halt kA wie der Befehl zum zurückspringen bzw. zu einer Seite springen ist :/

        Kann ja PHP auch nicht haben, dass läuft auf dem Server, nicht im Browser. Lies deshalb meinen anderen Beitrag.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
      3. Ahoi Kris,

        gibt es einen simplen Redirect im PHP ?

        es besteht die möglichkeit mit einer Kombo aus $_SERVER['HTTP_REFERER']
        und header("Location:") so etwas zu "simulieren", allerdings kann
        $_SERVER['HTTP_REFERER'] vom Benutzer AFAIK manipuliert werden.

        MfG

        also irgendwie weiß ich nicht ob du mich verstanden hast :)

        ich habe auf meiner Hauptseite ne Menge Checkboxen und Textareas ...
        wenn man dann auf den untersten Button klickt (wo das Form Tag aufhört), dann schickt er dich auf die nächste Seite, die die übergebenen Variablen dann verarbeitet. Wenn jedoch NIX angeklickt wurde und in keiner Textarea was steht (soweit so gut das geht ja auch alles vom proggen her sehr einfach) ... will ich eine Abfrage machen bevor er den Content ausspuckt und wenn eben NIX weitergegeben wurde, dann soll er direkt wieder auf die Seite zurückspringen. Seitenname kann ich ja auch fest angeben ...

        aber ich hab halt kA wie der Befehl zum zurückspringen bzw. zu einer Seite springen ist :/

        hab den Fehler gefunden ...
        es muss komplett über jeglichen <HEAD> etc. Tags stehen :)
        Denkfehler ...
        danke nochmals :)

        1. Hi Kris,

          hab den Fehler gefunden ...
          es muss komplett über jeglichen <HEAD> etc. Tags stehen :)

          Es muss sogar komplett vor jeglichen Zeichen stehen, die an den Browser gesendet werden, also z.B. würde auch schon ein einziges Leerzeichen vor <?php schon zu einem Fehlschlagen führen.

          MfG, Dennis.

          --
          Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
          Man sollte nie aufhören zu fragen (Albert Einstein)
          ... aber natürlich erst, nachdem man sämliche FAQ's und Archive durchgelesen hat :-P
      4. Hi!

        Kann es sein, dass du Usereingaben validieren möchtest? Dann wäre dein Linktipp des Tages: Das Affenformular (da gibt es übrigens noch keinen Wikipedia-Artikel zu ;-) )

        Und bitte [lihnk:http://learn.to/quote@title=unterlasse Fullquotes].

        Gruß aus Iserlohn

        Martin

  2. echo $begrüßung;

    Redirect auf die Seite zuvor

    Die "Seite zuvor" kann man in $_SERVER["HTTP_REFERER"] finden, muss man aber nicht, da das eine Angabe ist, die der Client mitsendet und beliebig fälschen kann.

    echo "$verabschiedung $name";

  3. Moin!

    gibt es einen simplen Redirect im PHP ?

    Du kannst die Seite in einer Session speichern und mittel header("Location: ....) oder mit einer Kombination aus HTML und Javascript aufwarten.

    if ($xyz == 0) {
       echo '<script type="text/javascript">history.back();</script><p>Bitte benutzen Sie die Zurück-Taste Ihres Browsers</p>';
    }

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. Moin!

      gibt es einen simplen Redirect im PHP ?
      Du kannst die Seite in einer Session speichern und mittel header("Location: ....) oder mit einer Kombination aus HTML und Javascript aufwarten.

      if ($xyz == 0) {
         echo '<script type="text/javascript">history.back();</script><p>Bitte benutzen Sie die Zurück-Taste Ihres Browsers</p>';
      }

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      gibt es denn keine Möglichkeit einen Befehl zu setzen, der unaufgefordert dich direkt zurückkatapultiert oder zu einer bestimmten Seite ?

      1. Moin!

        gibt es denn keine Möglichkeit einen Befehl zu setzen, der unaufgefordert dich direkt

        zurückkatapultiert oder zu einer bestimmten Seite ?

        Hab ich doch. Das Javascript macht genau dies. Nur, wenn der Besucher JS deaktiviert hat sieht er überhaupt die Aufforderung.

        Die zweite Lösung.

        <?
        header ("Location: http://www.deineDomain.tld/seite.php?foo=bar&bar=foo">
        ?>

        Da darfst Du aber bis dato nichts gesendet haben und musst wissen wohin Du ihn zurückkatapultieren willst. Du kannst den String natürlich frei zusammenbauen, nur ein gültige URI muss rauskommen.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
        1. Moin!

          gibt es denn keine Möglichkeit einen Befehl zu setzen, der unaufgefordert dich direkt
          zurückkatapultiert oder zu einer bestimmten Seite ?

          Hab ich doch. Das Javascript macht genau dies. Nur, wenn der Besucher JS deaktiviert hat sieht er überhaupt die Aufforderung.

          Die zweite Lösung.

          <?
          header ("Location: http://www.deineDomain.tld/seite.php?foo=bar&bar=foo">
          ?>

          Da darfst Du aber bis dato nichts gesendet haben und musst wissen wohin Du ihn zurückkatapultieren willst. Du kannst den String natürlich frei zusammenbauen, nur ein gültige URI muss rauskommen.

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          alles klar funktioniert :)
          genau wie die HEADER Funktion bei PHP auch...
          Problem war :

          Da darfst Du aber bis dato nichts gesendet haben

          danke nochmals KRIS :)

  4. hi Kris,

    bitte lies </faq/#Q-09a> und </faq/#Q-09b>, und berücksichtige sie bei deinen zukünftigen postings.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }