Hallo Astovidatu.
Genau, das sag ich doch die ganze zeit, das mein script niemals die werte der antworten des users bekommt weil eben die entsprechenden HTML-Elemente außerhalb des Formulars liegen.
Da du den Fehler erkannt hast, dürfte es nun ein leichtes sein, ihn zu beheben.
Die frage ist wie bekomme ich die Antworten der Radiobuttons in results.cgi? Die radio buttons haben absichtlich alle den namen "antowrt" denn so kann ich sie später einem array zuweisen (@usr_answers = param('antwort')) und mit den richtigen antwort in @answers vergleichen.
Vereinfacht sieht der HTML-Code, der von deinem Script erzeugt wird, so aus:
<form name="form1" method="post" action="do_quiz.cgi">
<!-- Die Fragen -->
</form>
<form name="form2" method="post" action="results.cgi">
<!-- Username, E-Mail usw. -->
</form>
Formular Nr. 1 (das mit den richtigen Antworten) wird nicht abgesendet. Selbst wenn es abgesendet werden würde, stünden die richtigen Antworten deinem Script "do_quiz.cgi" zur Verfügung, aber nicht "results.cgi". Eine einfachere Variante wäre diese:
<form name="form2" method="post" action="results.cgi">
<!-- Die Quizfragen -->
<!-- Username, E-Mail usw. als versteckte Eingabefelder -->
</form>
So würdest du auch die vom Benutzer gegebenen Antworten an results.cgi weiterreichen und könntest sie dort weiterverarbeiten.
Freundschaft!
Siechfred