# Quiz mit HTML/PHP erstellen



## steffenw (29. Jan 2018)

Hallo,

ich muss ein kleines Quiz nur mit HTML/PHP erstellen:

hier mal meine Ansätze:

HTML Formular:

```
<HTML>
<HEAD>
<TITLE>Quiz in PHP</TITLE>
<meta http-equiv="Content-Type"
       content="text/html; charset=utf-8">
</HEAD>
<BODY>
<H1>PHP-Quiz</H1>

<form action="auswertung.php" method="post">

  <H2>Frage 1: Was ist der Sinn des Lebens laut dem "Hitchhikers Guide to the Galaxy"?</H2>
  <input type=radio name=antwort1 value=40> 40<br>
  <input type=radio name=antwort1 value=41> 41<br>
  <input type=radio name=antwort1 value=42> 42<br>
  <input type=radio name=antwort1 value=43> 43<br>
  <input type=radio name=antwort1 value=""> Weiß ich nicht.<br>

<H2>Frage 2: Wofür steht "HTML"?</H2>
  <input type=radio name=antwort2 value=A> "Habe Teilweise Mäßig Langeweile"<br>
  <input type=radio name=antwort2 value=B> "Hüper Tux Mailing Liste"<br>
  <input type=radio name=antwort2 value=C> "Hyper Text Markup Language"<br>
  <input type=radio name=antwort2 value=D> "Heute Totaler Murks am Laptop"<br>
  <input type=radio name=antwort2 value=""> Weiß ich nicht<br>

<H2>Frage 3: Was ist JavaScript?</H2>
  <input type=radio name=antwort3 value=A> Der Nachfolger von JAVA<br>
  <input type=radio name=antwort3 value=B> Ein Fantasy-Zeichensatz für Windows<br>
  <input type=radio name=antwort3 value=C> Trojaner, der durch Script-Kiddies verbreitet wird<br>
  <input type=radio name=antwort3 value=D> Eine in HTML eingebettete Programmiersprache, die direkt vom Browser interpretiert wird<br>
  <input type=radio name=antwort3 value=""> Weiß ich nicht<br>

<br><br>

  <input type=submit value="Auswerten">
  <input type=hidden name="quiz" value="quiz1">
 
</FORM>

</BODY>

</HTML>
```

Und hier der PHP Teil:

```
<!-- Hier die Auswertung in PHP-->

<?php

//Überprüfen ob alle Felder ausgefüllt sind:
$antwort1=$_POST["antwort1"];
$antwort2=$_POST["antwort2"];
$antwort3=$_POST["antwort3"];
if($antwort1 !="" AND $antwort2 !="" AND $antwort3 !="") {

// Definition der richtigen Antworten
if ($_POST['quiz'] == "quiz1") {
$r1 = "42";
$r2 = "C";
$r3 = "D";
}
$points = 0; //Variable für Punktzahl
if ($_POST['antwort1'] == $r1) { //Wenn richtige Antwort ausgewählt erhöhe points um 1
$points++;
}
if ($_POST['antwort2'] == $r2) {
$points++;
}
if ($_POST['antwort3'] == $r3) {
$points++;
}


echo "<p>Sie haben ".$points." von 3 Fragen richtig beantwortet!</p>";
}

//Wenn nicht alle Felder ausgefüllt:
else {
    echo "Bitte füllen Sie alle Felder aus";
}

?>
```

Wo sind da die Fehler? Funktioniert nämlich nicht so wie es soll.


----------



## Thallius (29. Jan 2018)

Funktioniert nicht ist keine Fehlerbeschreibung....


----------



## steffenw (29. Jan 2018)

Problem liegt bei der Abfrage ob alle Felder ausgefüllt sind.

Fülle ich alles aus funktioniert es. Also es kommt schon z.B. Sie haben 2 von 3 Fragen richtig beantwortet! Das geht..

Aber lasse ich Felder leer kriege ich das:
*Notice*: Undefined index: antwort1 in *C:\xampp\htdocs\swt\auswertung.php* on line *6*

*Notice*: Undefined index: antwort2 in *C:\xampp\htdocs\swt\auswertung.php* on line *7*

*Notice*: Undefined index: antwort3 in *C:\xampp\htdocs\swt\auswertung.php* on line *8*


----------



## Thallius (29. Jan 2018)

Das liegt daran, dass die POST Variablen nur gesetzt werden wenn sie werte enthalten.

Du kannst einfach im php mit isset() vorher probieren ob es die Variable gibt und wenn nicht, dann entsprechend diecfehlermeldung ausgeben.

Gruß

Claus


----------

