PHP Radiobutton Problem

  • Hallo Zusammen!

    Für meine Abschlussarbeit programmiere ich ein Web-Portal. Bisher klappt eigentlich alles mit PHP sehr gut, jedoch bin ich heute auf ein Problem gestossen, welches ich einfach nicht lösen kann... könnt ihr mir helfen?

    Ich habe eine Seite "Konfiguration_Image_oswaehlen.php" mit Radiobuttons in einem Formular. Dies sieht so aus:

    <form action="check.php" methode="post" name="frmoswaehlen">
    <p>
    <label class="Content">
    <input type="radio" name="osWahl" value="Windwos" checked="checked"/>
    Windows XP / Windows Vista</label>
    <br />
    <label class="Content">
    <input type="radio" name="osWahl" value="Mac" />
    Mac OS X</label>
    <br /><br />
    <input name="cmdMandant_auswaehlen" type="submit" value="Weiter" />
    </p>
    </form>


    mit "submit" führt das Formular die Datei "check.php" aus. Dieses "check.php" soll mir sagen, welcher Radiobutton angeklickt wurde UND dementsprechend eine Anweisung ausführen. Hier der Code von "check.php" :


    <?php

    $temp = $_POST['osWahl'];

    if ($temp == "Windows") {
    include ("Konfiguration_Image_applikationen.php");
    }
    else {
    include ("Konfiguration_Image_OK.php");
    }
    ?>


    Wie ihr villeicht sieht, möchte ich wenn der Radiobutton "Windows" gewählt wurde, die Seite "Konfiguration_Image_applikationen.php" öffnen und sonst soll die Seite "Konfiguration_Image_OK.php" aufgerufen werden.

    Dies funktioniert so nicht... Sieht jemand den Fehler?

    Vielen Dank im Voraus!

  • value="Windwos"

    Richtig debuggen

    • Man bemerkt, dass ein Skript nicht das tut, was es soll.
    • Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    • Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    • An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    • Schritt 4 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    • Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    • Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    • Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
  • Hallo Bandit600!

    Zuerst einmal möchte ich mich für die rasche Antwort bedanken! Vielen Dank auch für deinen Debuggin-Vorgehensplan, Punkt 2 hat mich schon weiter gebracht ;)

    $temp = $_POST['osWahl'];

    war das Problem laut dem "Debugger", nun habe ich es mit "GET" statt "POST" realisiert und erhalte keine Fehlermeldung. Jedoch führt er immer den "else"-Befehl aus. Egal welchen Radio dass ich markiert habe... Hast du mir dafür einen Tip?

  • Hast du mir dafür einen Tip?


    Klar habe ich einen Tipp: lese die Antworten, die du bekommst, richtig!

    value="Windwos"

    Entweder schreibst du Windows 2x richtig oder 2x falsch, auf eins muss du dich einigen, denn so ein Durcheinander versteht PHP nicht. Mit ein paar simplen echo's oder einem print_r($_POST) hättest du das selber finden können.

    Einmal editiert, zuletzt von bandit600 (9. März 2009 um 15:13)

  • Hehe vielen Dank Bandit... Das ist mir jetzt schon ein bisschen peinlich hehe :p

    Suuper, mit GET und deinem Tip funktioniert es wunderbar!
    Aber ich glaube ich brauche jetzt mal eine Raucher-Pause ;)

  • Ähm, mit $_GET?! Bleibe besser bei der Methode POST, nur schreibe es richtig:

    methode="post"

    ein e weniger und schon geht's auch mit POST

  • omg...

    Vielen Dank an euch! Bitte entschuldigt meine "Doofheit", doch das ganze ensteht gerade unter grooooossem Stress mit wenig schlaf.. ;)


    Aber Danke auch für die super Fehleranalyse-Anleitung!
    Bin positiv überrascht von diesem Forum!!!!!