ich habe da ein Problem mit dem Quiz Modul aus der Download Seite.
Und zwar habe ich irgendwie das Gefühl dass dort etwas nicht richtig geschlossen wurde, da die Formatierung von allem folgenden immer kaputt ist. ich hab jetzt schon lange nach dem Fehler gesucht, aber ich finde ihn nicht. könnt ihr mir vielleicht helfen?
Hier mal die Codes.
Eingabe:
Code: Alles auswählen
<b>Bewertungstext</b><br><br>
<strong>0%</strong>:
<input type="text" name="VALUE[2]" value="REX_VALUE[2]" size="60" class="inp100" /><br>
<strong>20%</strong>:
<input type="text" name="VALUE[3]" value="REX_VALUE[3]" size="60" class="inp100" /><br>
<strong>40%</strong>:
<input type="text" name="VALUE[4]" value="REX_VALUE[4]" size="60" class="inp100" /><br>
<strong>60%</strong>:
<input type="text" name="VALUE[5]" value="REX_VALUE[5]" size="60" class="inp100" /><br>
<strong>80%</strong>:
<input type="text" name="VALUE[6]" value="REX_VALUE[6]" size="60" class="inp100" /><br>
<strong>100%</strong>:
<input type="text" name="VALUE[7]" value="REX_VALUE[7]" size="60" class="inp100" /><br>
<strong>Fragen</strong>:<br />
<textarea name="VALUE[1]" cols="80" rows="20" class="inp100">REX_HTML_VALUE[1]</textarea>
<br /><br>
<b>Musterformatierung</b><br>
<pre style="font-size:12px;">
What does PHP stand for?
PHP: Hypertext Preprocessor
Personal Home Page
Private Home Page
Personal Hypertext Processor#
##NEXT##
Frage?
a
b#
c
d
</pre>
<br><br><b>Separator</b><br>
<pre style="font-size:12px;">
##NEXT##
</pre><br>
Wichtig!<br>
Die richtigen Antworten werden am Ende mit # markiert. Zwischen den Datensätzen wird ein ##NEXT## plaziert!
Code: Alles auswählen
<div id="quiz">
<?php
$n = false;
if(!function_exists('trim_x34pw_array')) {
function trim_x34pw_array($a){ foreach($a as $k => $v) { if($v=="") unset($a[$k]); } return $a; }
}
$text_bei_auswetung = array("0" => "REX_HTML_VALUE[2]", "20" => "REX_HTML_VALUE[3]", "40" => "REX_HTML_VALUE[4]", "60" => "REX_HTML_VALUE[5]", "80" => "REX_HTML_VALUE[6]", "100" => "REX_HTML_VALUE[7]");
// Loadquiz data
foreach(explode("##NEXT##", str_replace("<br />","", "REX_VALUE[1]")) as $v) {
$t = array(); $t2 = array();
foreach(explode("\n", trim($v))as $p) { if($p = trim($p))$t[] = $p; }
foreach($t as $k => $v2) {
if($k == 0) $t2["frage"] = $v2;
else { if(ereg("#$", $v2)) { $v2 = substr($v2,0, -1); $t2["richtig"] = $k-1; } $t2["antworten"][] = $v2; }
}
$fragen[] = $t2;
}
$ex = trim_x34pw_array((isset($_POST["ex"])) ? explode(";", $_POST["ex"]) : array());
$cal = trim_x34pw_array((isset($_POST["cal"])) ? explode(";", $_POST["cal"]) : array());
$sel = trim_x34pw_array((isset($_POST["sel"])) ? explode(";", $_POST["sel"]) : array());
// AUSWERTUNG
if(isset($_POST["fid"]) and is_numeric($_POST["fid"]) and is_numeric($_POST["antwort"]) and isset($_POST["antwort"])) {
if($_POST["antwort"] == $fragen[$_POST["fid"]]["richtig"]) $cal[] = 1; else $cal[] = 0;
$ex[] = $_POST["fid"];
$sel[] = $_POST["antwort"];
}
foreach($fragen as $k => $v) { if(in_array($k, $ex)) continue; ?>
<form id="quiz" name="quiz" method="post" action="<?php echo $_SERVER["REQUEST_URI"];?>">
<div class="ask" style="margin-top:10px; margin-bottom:25px;"><h2><?php echo $v["frage"];?></h2><div>
<div class="ans" style="margin-top:10px; margin-bottom:25px;">
<?php foreach($v["antworten"] as $aid => $antwort) { ?>
<p>
<input type="radio" name="antwort" onClick="document.quiz.submit.disabled=false;" value="<?php echo $aid?>" id="radiobutton<? echo $aid?>" />
<label for="radiobutton<?php echo $aid?>"><?php echo $antwort?></label>
</p>
<?php } ?>
</div>
<p>
<input type="submit" name="submit" value="NEXT" id="Submit" disabled="disabled" />
</p>
<input name="starttime" type="hidden" value="<?php echo (isset($_POST["starttime"])) ? $_POST["starttime"] : time(); ?>" />
<input name="fid" type="hidden" value="<?php echo $k?>" />
<input name="ex" type="hidden" value="<?php echo implode(";", $ex);?>" />
<input name="sel" type="hidden" value="<?php echo implode(";", $sel);?>" />
<input name="cal" type="hidden" value="<?php echo implode(";", $cal);?>" />
</form>
<?php $n=true; break; } ?>
<?php
if(!$n) {
$ergebnis_in_prozent = round(array_sum($cal)*100/count($fragen));
$zeit_in_sekunden = time() - $_POST["starttime"];
$richtige_antworten = array_sum($cal);
$falsche_atworten = count($fragen) - array_sum($cal);
foreach($text_bei_auswetung as $k => $v) { if($ergebnis_in_prozent >= $k) $ergebnis_text = $v; }
echo "
<h2>$ergebnis_text</h2><br>
Result: $ergebnis_in_prozent% <br>
Time: $zeit_in_sekunden Sec. <br><br>
Correct answers: $richtige_antworten<br>
Incorrect answers: $falsche_atworten<br><br>
<h3>The following questions were answered wrong:</h3><br>";
foreach($cal as $key => $val) {
if($val) continue;
echo "<b>". $fragen[$key]["frage"]."</b><br>";
echo "Correct answers: <font color=green>" . $fragen[$key]["antworten"][$t2["richtig"]] . "</font><br><br>";
}
}
?>
</div>