Ankündigung

Einklappen
Keine Ankündigung bisher.

Punkte Zählen in Session?

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Punkte Zählen in Session?

    Hallo zusammen. Ich versuche mich gerade in php und hoffe, es kann mir jemand bei meinem Problem helfen.

    Mein Vorhaben
    Ich wollte ein kleines Quiz erstellen. Zuerst meldet sich ein vorher registrierter Benutzer an. Anschließend befindet sich auf jeder Seite eine Multiple Choice Frage mit 5 möglichen Antworten - nach Beantwortung geht es zur nächsten Frage usw. Jede Frage befindet sich auf einer eigenen Seite. Eine richtige Antwort gibt einen Punkt. Das Ergebnis wollte ich dann am Ende in einer SQL-Datenbank abspeichern.

    Meine "Lösung":
    In einem Formular wird die Antwort (a,b,c,d,e) eingegeben und im Code verglichen.
    ich habe dann einfach einen Zähler in einer Session initiiert´, der sich nach einer richtigen Antwort um 1 erhöht.

    Das Problem:
    Wenn ich das jetzt mit dem Zähler mache, habe ich das Problem, dass der Benutzer einfach zurück gehen könnte, die Frage noch mal beantwortet und der Zähler sich noch mal erhöht. Natürlich soll eine Frage nur 1 mal beantwortet werden können.

    PHP-Code:

    if($_POST["antwort"]=="a"){              //richtige Antwort a
        
    $_SESSION['zaehler']++;             // Zähler +1 (also richtige Antwort +1)
        
    echo $_SESSION['zaehler']; 
        
    }else{
        echo 
    $_SESSION['zaehler'];           //echo für mich, um zu sehen, ob der Zähler läuft

    Schon mal ein Danke im Voraus und ich hoffe, ich habe es halbwegs verständlich erklärt.

  • #2
    Dann speichere zB die letzte beantwortete Frage (Nummer) auch in der Session und prüfe das vor der Addition.

    Du kannst die Antworten auch in der DB ablegen, dann siehst du dort auch ob Frage bereits von Benutzer beantwortet. Daten sind dann auch nach Seitenbesuch gespeichert (mit Benutzer verknüpft) und kann man dann später auch schön auswerten wie viele zB die Frage Nummer xy richtig falsch etc.. haben. Wenn du schon eine DB hast dann nutze diese auch als Datenspeicher.. würde ich sagen.

    Wichtig! Datenbank gleich von Beginn an sauber normalisiert (-> "Normalisierung") aufsetzen.
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Hä? Du hast doch schon vor Tagen Antworten dafür bekommen?!

      http://phpforum.de/forum/showthread.php?t=283576
      [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

      Kommentar


      • #4
        Na toll...


        Bitte beachten: Anmerkung zu Multipostings

        [MOD: Geschlossen]
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar

        Lädt...
        X