PHP 4.2.3/Apache 1.3.27: "if" funktioniert nicht

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

  • PHP 4.2.3/Apache 1.3.27: "if" funktioniert nicht

    Hallo!

    Hoffentlich kann mir jemand helfen.

    Habe die im Betreff genannte Zusammenstellung eigenhändig auf SuSE Linux 8.0 implementiert - ohne Fehlermeldungen!

    Habe folgendes HTML-Formular erstellt (Auszug):

    <form name="Response" method="post" action="vacation.php">
    ...
    <input type="checkbox" name="resp" value="aktiv"> Autoresponder aktiv>
    <input type="submit" value="Abschicken" name="B1"> <input type="reset" value="Zurücksetzen" name="B2">
    </form>

    Es soll nun mittels PHP-Skript die Checkbox ausgewertet werden (vacation.php):

    <?php
    if ($resp == "aktiv") {
    echo "Aktiv";
    }
    else {
    echo "Inaktiv";
    }

    Nun das Problem: PHP scheint zu funktionieren, denn es passiert auch etwas - nur leider nicht das, was ich mir erhofft hatte. Statt "Aktiv", wenn die Checkbox geklickt ist und "Inaktiv" wenn die Checkbox nicht geklickt ist, erhalte ich IMMER die Ausgabe "Inaktiv".

    Somit scheint PHP meine If-Anweisung gar nicht auszuwerten.

    Bitte helft mir! Was mache ich falsch?

    Ich habe das Ganze auch schon mit Radio-Buttons und mit Drop-Down-Menüs probiert - jedesmal mit demselben Ergebnis.

    MfG, Sete

  • #2
    hi

    wie siehts denn mit den registerglobals aus?

    wenn die auf off sind, dann musst du die variable mit:

    $HTTP_POST_VARS['resp'] abfragen. also versuchmal ob das funktioniert:

    PHP-Code:
    <?php
    if ($HTTP_POST_VARS['resp'] == "aktiv") {
    echo 
    "Aktiv";
    }
    else {
    echo 
    "Inaktiv";
    }
    ?>
    und schau mal hier nach :

    http://www.php-resource.de/manual.ph...egisterglobals

    gruesse von

    pau

    Kommentar


    • #3
      &quot;if&quot; funktioniert immer noch nicht

      Vielen Dank - habe register_globals in der php.ini auf "on" gesetzt und dann mein Skript getestet.

      Leider ohne Erolg, es wurde immer noch "Inaktiv" ausgegeben - egal, wie die Checkbox geklickt war.

      Auch nachdem ich zusätzlich im Skript $HTTP_POST_VARS eingefügt habe, funktioniert mein Skript einfach nicht.

      Der PHP-Interpreter prüft anscheinend gar nicht erst die If-Anweisung und springt sofort zum Else-Teil.

      MfG, Sete

      Kommentar


      • #4
        hi

        also das if nicht funktioniert habe ich noch nie gehoert.

        hast du schonmal

        echo $resp;

        versucht? was gibt er denn aus?

        gruss von

        pau

        Kommentar


        • #5
          if geht immer noch net

          echo $resp; gibt leider gar nichts aus.

          Kommentar


          • #6
            hmm

            dann liegst erstmal nicht am if, aber woran es sonst liegen koennte weiss ich auch nicht.

            hast du es schonmal mit method="get" versucht?

            poste dochmal den ganzen sourcecode des formulars

            Kommentar


            • #7
              nimm mal
              $_POST['resp'];
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                message.html:
                ===========
                <html>
                <head>
                <title>Autoresponder</title>
                </head>
                <body>
                <form name="Autoresponderformular" action="vacation.php" method="POST">
                <p>Betreff:<br>
                <input type="text" name="betreff" size="70"></p>
                <p>Text:<br>
                <textarea rows="12" name="text" cols="60"></textarea></p>
                <p>Autoresponder: <select size="1" name="autoresponder">
                <option selected value="inaktiv">inaktiv</option>
                <option value="aktiv">aktiv</option>
                </select></p>
                <p><input type="submit" value="Abschicken" name="B1"> <input type="reset" value="Zurücksetzen" name="B2"></p>
                </form>
                </body>
                </html>

                ============================================
                vacation.php:
                ==========
                <?php
                if ($autoresponder == "aktiv") {
                echo "aktiv";
                }
                else {
                echo "inaktiv";
                }
                ?>

                Kommentar


                • #9
                  Benutz mal
                  $_POST['autoresponder']
                  Es ist schlecht von globalvariablen auszugehen. Die fallen irgendwann ganz weg.
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    Sicher ... Globale Variablen werden bald wegfallen ... wer braucht in einer Programmiersprache den schon Globale Variablen ...

                    @sete: Hast Du nur den Wert in der php.ini geändert ... oder hast Du auch den Webserver restarted??
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      @goth Naja globale Variablen werden sicher nicht wegfallen, doch sicher die globale Verfügbarkeit der Formulardaten.

                      @sete Auch wenn es so einfach ist aus <input name="name"> in php $name zu haben solltest Du auch aus diversen Sicherheitsgründen immer $_POST['name'] benutzen.
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Kommentar


                      • #12
                        also entweder sind meine auge noch leicht muede oder du hast in deinme formular gar keine variable resp drinne ......
                        die heisst autoresponder ->
                        PHP-Code:
                        $_POST["autoresponder"
                        lass dir die variable mal in der datei ausgeben .....


                        mfg
                        kapitaeniglo

                        Kommentar

                        Lädt...
                        X