Bedingte Weiterleitung im Skript realisieren

  • Hallo,

    kann mir hier irgendjemand verraten, wie man innerhalb eines PHP-Skriptes eine bedingte Weiterleitung erzeugt?

    Bis zu

    PHP
    if($redirect == true)
    {
    header("Location: next.php");
    }

    bin ich auch schon gekommen, aber header ist ja etwas eigenwillig. Das heißt, es darf nichts ausgeben werden, bevor ich diese Funktion verwende.

    Und hier liegt das Problem. Ich möchte in einem Login-Skript eine Weiterleitung haben, wenn alle Eingaben erfolgreich abgeglichen wurden. Das heißt, dass da eine ganze Menge Quelltext vor header steht.

    Gibt es da noch eine andere Möglichkeit (in PHP).
    Ansonsten: Gibt es in PHP nicht die Möglichkeit, eine "Bedinungsvariable" an den Anfamg eines Skriptes zu setzen, ihr erst später einen Wert zuzuweisen und sie trotzdem am Anfang zu nutzen - quasi eine Art goto.
    Das ist natürlich nicht sonderlich elegant, aber wie soll's anders gehen?

    Komischerweise habe ich im Netz ein Skript gefunden, in dem die header-Funktion scheinbar erfolgreich irgendwo im Quelltext aufgerufen wird.

  • Und hier liegt das Problem. Ich möchte in einem Login-Skript eine Weiterleitung haben, wenn alle Eingaben erfolgreich abgeglichen wurden. Das heißt, dass da eine ganze Menge Quelltext vor header steht.

    Quelltext vor header() stört ja nicht - solange nichts ausgegeben wird.

  • Das Problem ist, dass recht viele HTML-Tags vor header stehen.

    Da muss ich dans ganze wohl von einander trennen.
    Na das wird ein Spaß. :(

  • Warum so kompliziert. Teil das ganze auf einzelne Dateien, jede mit einer eigenen Aufgabe, auf.
    Auf der ersten Seite gibt er Benutzer seine Zugangsdaten ein. Das Forumular führ zum Skript, das die Eingaben prüft und entsprechend Redirectet. Je nachdem, ob die Eingaben gepasst haben, gehts zu einer Seite für einen erfolgreichen bzw fehlgeschlagenen Login.

    Oder hab ich was falsch verstanden?

  • kann mir hier irgendjemand verraten, wie man innerhalb eines PHP-Skriptes eine bedingte Weiterleitung erzeugt?

    Bis zu

    PHP
    if($redirect == true)
    {
    header("Location: next.php");
    }

    Für favascript-fähige Browser könnt man Javascript verwenden

    PHP
    echo "<script>document.location='next.php';</script>";

    und für die anderen (ohne javascript) noch einen link anbieten:

    PHP
    echo "<a href='next.php'>weiter gehts hier</a>";

    aber output-buffering ist natürlich auch sehr schick.

    Brigitte Jellinek - http://multimediatechnology.at/web-communities/
    Ich unterrichte in einem Medieninformatik-Studium (BSc, MSc) mit Schwerpunkt Web Development
    Meine Themen: Ruby on Rails, Javascript, SCRUM, git, Test Driven Development,...

  • Warum so kompliziert. Teil das ganze auf einzelne Dateien, jede mit einer eigenen Aufgabe, auf.

    Sehe ich auch so. Muessen auch nicht unterschiedliche Dateien sein, kannst ja auch was in dieser Art machen:

    Der Code ist natuerlich schnell hingefetzt und vielleicht fehlerhaft.

  • Für favascript-fähige Browser könnt man Javascript verwenden

    PHP
    echo "<script>document.location='next.php';</script>";

    und für die anderen (ohne javascript) noch einen link anbieten:

    PHP
    echo "<a href='next.php'>weiter gehts hier</a>";

    aber output-buffering ist natürlich auch sehr schick.


    also ich würde empfehlen, für solche Sachen nicht JavaScript zu empfehlen. Dafür gibt es das hier:

    http://de.selfhtml.org/html/kopfdaten/meta.htm#weiterleitung

    Code
    <meta http-equiv="refresh" content="5; URL=http://de.selfhtml.org/">


    man kann die Zeit natürlich auf 0 setzen und dann wird der redirect sofort gemacht.

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Javascript verwende ich eigentlich grundsätzlich nicht, weil es nicht serverseitig ist und Sicherheitsrisiken birgt, die sich wohl durch die Benutzung von PHP vermeiden lassen.

    Außerdem gibt es eine Menge Menschen, die Javascript in ihrem Browser generell ausgeschalten haben.

  • Javascript verwende ich eigentlich grundsätzlich nicht, weil es nicht serverseitig ist und Sicherheitsrisiken birgt, die sich wohl durch die Benutzung von PHP vermeiden lassen.

    Außerdem gibt es eine Menge Menschen, die Javascript in ihrem Browser generell ausgeschalten haben.

    Natürlich sollte man Webseiten möglichst so gestalten dass sie "gracefully degraden" - dass sie auch ohne javascript und flash und css noch benutzbar sind. allein schon wegen der barrierefreiheit.
    siehe z.B. http://www.anybrowser.org/campaign/abdesign.html
    oder das Buch von Dan Cederholm: Bulletproof Webdesign. Addison-Wesley, München. ISBN 3827326230.

    Deswegen ganz auf Javascript zu verzichten find ich übertrieben asketisch. Grade Javascript und AJAX sind die Chance dass offene Standards sich gegen die proprietäre Konkurrenz (Flash, Silverlight) behaupten können.


    "eine Menge Menschen, die Javascript in ihrem Browser generell ausgeschalten haben" sind laut http://thecounter.com derzeit 5%:


    Zitat


    JavaScript Stats

    Fri Feb 1 00:01:02 2008 - Mon Mar 31 23:58:01 2008 60.0 Days

    Javascript 1.2+: 11424104 (94%)
    Javascript <1.2: 20014 (0%)
    Javascript false: 699789 (5%)

    Brigitte Jellinek - http://multimediatechnology.at/web-communities/
    Ich unterrichte in einem Medieninformatik-Studium (BSc, MSc) mit Schwerpunkt Web Development
    Meine Themen: Ruby on Rails, Javascript, SCRUM, git, Test Driven Development,...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!