Ankündigung

Einklappen
Keine Ankündigung bisher.

php quiz

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php quiz

    Hallo, also es geht um folgendes Quiz von hier
    http://www.homepage-total.de/php/quiz.php

    Da möchte ich nun einmal ne Zeitsperre reinbauen, also das man maximal 30 sekunden Zeit hat und zweitens das man nicht einfach den zurück button im browser klicken kann und dann die frage nochmal beantworten kann^^

    Ich poste hier auch gleich mal den quote, dann kann man sich den mal voraugen führen^^

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Quiz</title>
    <script type="text/javascript">
    function Antwortauswahl(){
    antworten = document.Form.antwort.length;
    ok = false;
    for (i = 0; i < antworten; i++){
    if(document.Form.antwort[i].checked) {
    ok = true;
    }
    }
    if (ok == false) {
    switch (antworten) {
    case 2:
    Zahl = "zwei";
    break;
    case 3:
    Zahl = "drei";
    break;
    case 4:
    Zahl = "vier";
    break;
    case 5:
    Zahl = "fünf";
    break;
    case 6:
    Zahl = "sechs";
    break;
    default:
    Zahl = "";
    break;
    }
    alert ("Bitte wählen Sie eine der " + Zahl + " Antworten aus!");
    return false;
    }
    else{
    return true;
    }
    }
    </script>
    </head>
    <body style="font-family: Verdana, Arial; font-size: 12px;">

    <h4><b>Quiz</b> / <a href="bestenliste.php">Bestenliste</a></h4>

    <?php
    // Quiz
    // Das Script stammt von W. Zenk
    // Homepage: www.homepage-total.de
    // eMail: [email protected]
    // Das Script darf frei genutzt werden,
    // solange dieser Vermerk nicht entfernt wird!

    # Ab wieviel Punkte in die Bestenliste eintragen lassen?
    $max_punkte = 4;

    $quizfrage = file("quizfragen.txt");
    $fragenanzahl = count($quizfrage);
    $punkte = 0;
    $quiz_nr = 0;

    if ($_GET) {
    $quiz_nr = @$_GET[quiz];
    }
    $akt_nr = $quiz_nr;
    $akt_nr++;

    echo "<form name=\"Form\" action=\"" . $_SERVER['PHP_SELF'] . "?quiz=$akt_nr\" method=\"post\" onSubmit=\"return Antwortauswahl();\">\n";

    if ( $quiz_nr > 0) {
    $punkte = @$_POST[punkte];
    $antwort = @$_POST[antwort];
    $Letzte_Frage = explode("|", $quizfrage[($quiz_nr-1)]);

    if ($antwort == $Letzte_Frage[7]) {
    echo "Die Antwort zu der Frage <i>„$Letzte_Frage[1]“</i> ist richtig!\n";
    $punkte++;
    }
    else {
    echo "Die Antwort zu der Frage <i>„$Letzte_Frage[1]“</i> ist falsch!<br>\n";
    echo "<b>Richtig ist:</b> <i>" . $Letzte_Frage[($Letzte_Frage[7]+1)] . "</i>\n";
    }
    echo "<input type=hidden name=\"punkte\" value=\"$punkte\"><hr>\n";
    }

    if ($quiz_nr < $fragenanzahl) {
    $Aktuelle_Frage = explode("|", $quizfrage[$quiz_nr]);
    echo "Frage: $Aktuelle_Frage[0]/$fragenanzahl<br><br>\n";
    echo "<b>$Aktuelle_Frage[1]</b><br><br>\n";

    if($Aktuelle_Frage[2] != "-"){
    echo "<input type=radio value=\"1\" name=\"antwort\" id=\"lbl1\"> <label for=\"lbl1\">$Aktuelle_Frage[2]</label><br>\n";
    }
    if($Aktuelle_Frage[3] != "-"){
    echo "<input type=radio value=\"2\" name=\"antwort\" id=\"lbl2\"> <label for=\"lbl2\">$Aktuelle_Frage[3]</label><br>\n";
    }
    if($Aktuelle_Frage[4] != "-"){
    echo "<input type=radio value=\"3\" name=\"antwort\" id=\"lbl3\"> <label for=\"lbl3\">$Aktuelle_Frage[4]</label><br>\n";
    }
    if($Aktuelle_Frage[5] != "-"){
    echo "<input type=radio value=\"4\" name=\"antwort\" id=\"lbl4\"> <label for=\"lbl4\">$Aktuelle_Frage[5]</label><br>\n";
    }
    if($Aktuelle_Frage[6] != "-"){
    echo "<input type=radio value=\"5\" name=\"antwort\" id=\"lbl5\"> <label for=\"lbl5\">$Aktuelle_Frage[6]</label><br>\n";
    }

    echo "<br><input type=submit value=\"Weiter...\">\n</form>\n";
    }
    else {
    echo "</form>\n";
    if ($punkte !="") {
    echo "Sie haben <b>$punkte</b> ".
    ($punkte == 1 ? "Frage" : "Fragen") .
    " von <b>$fragenanzahl</b> richtig beantwortet (".
    (100/$fragenanzahl)*$punkte."%).<br><br>\n";

    }
    else {
    echo "Sie haben <b>keine</b> Frage richtig beantwortet.<br><br>\n";
    }
    echo "<a href=\"quiz.php\">Quiz neu starten!</a>";
    if ($punkte >= $max_punkte) {
    echo "
    <br><br><b>In die Bestenliste eintragen</b><br>
    <form action=\"eintragen.php\" method=\"post\">
    Name: <input type=\"text\" name=\"Name\" maxlength=\"18\">
    <input type=\"hidden\" name=\"punkte\" value=\"$punkte\">
    <input type=\"submit\" value=\"Eintragen\">
    </form>";
    }
    }
    ?>

    </body>
    </html>

    Help i need somebody, help!

    Weiß vlt jemand was?

  • #2
    AW: php quiz

    Hmmm....das mit den bsp 30s würde ich mit:
    PHP-Code:
    echo '<meta http-equiv="refresh" content="30; url=bestlist.php">'
    Vielleicht wäre noch ein Countdown sinvoll:
    PHP-Code:
    <?php
    $time 
    '30';
    ?>
    <script type="text/javascript">
    var countdownstart = <? echo $time ?>;

    function forward(){
      if (countdownstart>0){
          document.getElementById("zeit").firstChild.nodeValue=countdownstart;
          countdownstart--;
          setTimeout("forward()",1000);
          }
      else
      parent.top.location="bestlist.php";

    }
    </script>

    <span id="zeit"><? echo $time ?></span>
    Wenn de es mit dem Countdown machst ...brauchste keine meta zeile.
    Das mit zurück kann ich dir leiter nicht helfen ... habe es selber noch nicht gemacht^^ .... ich weiss nur das es mit flash gehen soll. Mit flash kann man die seite nicht refreshen (F5).

    Kommentar


    • #3
      AW: php quiz

      Der Counter funzt iwie net +phpbb_sad

      Kommentar


      • #4
        AW: php quiz

        Ups...sry ... hatte was vergessen ...
        PHP-Code:
        <?php
        $time 
        '30';
        ?>

        <script type="text/javascript">
        var countdownstart = <? echo $time?>;

        function forward(){
          if (countdownstart>0){
              document.getElementById("zeit").firstChild.nodeValue=countdownstart;
              countdownstart--;
              setTimeout("forward()",1000);
              }
          else
          parent.top.location="bestlist.php";

        }
        </script>

        <body onLoad="forward()">
         <span id="zeit"><? echo $time ?></span>
        </body>

        Kommentar


        • #5
          AW: php quiz

          Hab noch ne andere Frage,

          wenn ich ein bild einfüge in die fragestellung (klappt ganz gut), wie kann ich dann machen das im nachhinein bei der nächsten frage nicht dieses bild angezeigt wird?
          weil wenn man eine frage gelößt hat kommt danach direkt immer die auflösung ob die frage richtig war oder halt nicht und da blendet der das bild wieder ein.

          Weiß jemand wie ich das verhindern kann?
          Vielen dank im vorraus!

          Kommentar


          • #6
            AW: php quiz

            poste mal pls den code

            Kommentar


            • #7
              AW: php quiz

              steht doch alles oben?

              Jedenfalls kann man in den ausgelagerten fragen (im textdokument) per html befehl bilder einfügen. Das sieht so aus:

              1|Frage1: Was ist 1+1? <img src="bild.jpg" alt="" border="0"> |1|2|3|4|-|3|

              und das prob ist das wenn der die frage auflöst das bild wieder da auftaucht, und das solls ja net

              Kommentar

              homepage-forum.de - Hilfe für Webmaster! Statistiken

              Einklappen

              Themen: 56.735   Beiträge: 429.423   Mitglieder: 28.490   Aktive Mitglieder: 42
              Willkommen an unser neuestes Mitglied, Megabyte.

              Online-Benutzer

              Einklappen

              214 Benutzer sind jetzt online. Registrierte Benutzer: 4, Gäste: 210.

              Mit 3.502 Benutzern waren am 23.01.2020 um 18:20 die meisten Benutzer gleichzeitig online.

              Die neuesten Themen

              Einklappen

              Die neuesten Beiträge

              Einklappen

              Lädt...
              X