Problem bei Quiz

Hashimura

Grünschnabel
Guten Tag Leute,
ich wollte etwas Php lernen und hab mit gedacht das ich ein Quiz mache.
Aber leider wird die richtige antwort als falsch gesehen.
Wo liegt hier das problem ?
PHP:
    define('MYSQL_HOST', '*******');
    define('MYSQL_BENUTZER', '*******');
    define('MYSQL_KENNWORT','*******');
    define('MYSQL_DATENBANK', '*******');

    $db_link = mysqli_connect (
                        MYSQL_HOST,
                        MYSQL_BENUTZER,
                        MYSQL_KENNWORT,
                        MYSQL_DATENBANK
                        );
    $sql = "SELECT * FROM quizfragen";
    $db_erg = mysqli_query( $db_link, $sql);
   
    if ( ! $db_erg )
    {
        die("Ungülstige Abfrage: " . mysqli_error());
    }

    $zeile = mysqli_fetch_array ( $db_erg);
    $fragen = $zeile['frage'];
    $ant1    = $zeile['ant1'];
    $ant2    = $zeile['ant2'];
    $ant3    = $zeile['ant3'];
    $ant4    = $zeile['ant4'];
    $rant    = $zeile['rant'];
   
        echo $fragen;
        echo "<form action='" .$SERVER['SCRIPT_NAME']. "' method='POST'>";
        echo "<input type='radio' name='question' values='" . $ant1 . "'>" . $ant1 . "<br>";
        echo "<input type='radio' name='question' values='" . $ant2 . "'>" . $ant2 . "<br>";
        echo "<input type='radio' name='question' values='" . $ant3 . "'>" . $ant3 . "<br>";
        echo "<input type='submit' name='auswahl' value='Abschicken'>";
        echo "</form>";

        if( $_POST['auswahl'] == "Abschicken")
        {
            if($_POST['question'] == $zeile['rant'])
            {
                echo "Die Antwort ist richtig!";
            }
            else
            {
                echo "Die Antwort ist falsch!"
            }
        }
 

sheel

I love Asm
Hi

ich seh den Fehler grad nicht direkt, aber:

In deinem Form fehlt Anwort 4.

Verwende htmlspecialchars für die Ausgaben der Variablen ($fragen, $ant1 usw.)

mysqli_fetch_array kann NULL statt einem Array zurückgeben, wenn es zB. kein Ergebnis gibt.

Vor dem verwenden von $_POST['auswahl'] und $_POST['question'] besser mit isset prüfen ob es die Werte gibt.

Und um den Fehler besser finden zu können, gib die zwei POST_Variablen mal mit echo aus...
 

Hashimura

Grünschnabel
Hab die zwei mal mir echo ausgegeben.
Bei $_POST['auswahl'] kommt "Abschicken" raus und bei $_POST['question'] kommt "on" raus, warum auch immer :/

EDIT

$_POST['question'] kommt jetzt das gewünschte ergebnis raus, habe value mit s geschrieben,
aber trotzdem gibt er es als falsch aus obwohl die beiden übereinstimmen.
 
Zuletzt bearbeitet: