Wenn if-Abfrage == true, dann weiterleiten ...

  • Hey!

    Ich habe ein einfaches Formular in der Datei start.php, erwünschte Eingabe ist gleich 1.
    Das attribut action lautet action="<?php $_SERVER['PHP_SELF']; ?>" ...
    Wenn keine 1 eingegeben wird, soll eine Fehlermeldung erscheinen, das funktioniert ja natürlich auch.

    NUR:
    Wie stelle ich es an, dass wenn eine 1 eingegeben wird man auf die Datei richtig.php weitergeleitet wird?

    LG, Chris

  • Moin, da gibts mehrere Möglichkeiten.
    A1: Eine Ausgabe eines META-Reloads.
    A2: Eine Weiterleitung via Javascript.
    A3: Eine Weiterleitung über header('Location: http://www.deineseite.de/richtig.php');
    Die letzte Möglichkeit ist eigentlich die besste, jedoch funktioniert sie ncith, wenn vorher schon etwas der Datei gesendet wurde.
    Man müsste also entweder das Ergebnis vor jedwedem HTML-Code prüfen, oder man benutzt Output-Buffering.
    Mehr dazu findest du hier und hier.

  • <?php
    if($_POST['deinWert'] == 1)
    {
    include ("richtig.php");
    } else {
    // dein Eingabeformular und die Daten folgen

    ?>
    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    - Dein Formular -
    </form>
    <?php } ?>

    ich glaube so oder ähnlich ist das mit dem include gemeint (wenn es nen saubereren include gibt, wie man ihn standardmäßig setzen soll korigiere mich der wissende bitte ^^)

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Zitat

    Moin, da gibts mehrere Möglichkeiten.
    A1: Eine Ausgabe eines META-Reloads.


    Das ist überhaupt nicht zu empfehlen, da der IE (ich glaube < 7) das falsch interpretiert. Er endet in einer Endlosschleife, der Weiterleitung. Sprich, er lädt die Seite zwar immer, aber du kommst nie hin :)

  • Zitat von K.Y.L.T.

    <?php
    if($_POST['deinWert'] == 1)


    Nee, nee, nee. Bitte so:

    Code
    if(isset ($_POST['deinWert']) && $_POST['deinWert'] == 1)