QuizSession – frei²-Opensource

QuizSession ist eine Bibliothek, mit der sich Sicherheitsfragen wie die berühmten Rechenaufgaben in Webformulare einbetten lassen.

  1. Voraussetzungen zum Betrieb
  2. Funktionen der Bibliothek
  3. Möglichkeiten zur Konfiguration
  4. Download/Quellcode
  5. Datenbank-Schemen
  6. Lizenz
  7. Bugs, Kontakt

Voraussetzungen zum Betrieb

Funktionen der Bibliothek

Stellen eigener Fragen

Der Katalog, der sich in der Tabelle quiz befindet und aus dem QuizSession zufällig eine Frage auswählt, kann um eigene Fragen erweitert werden. Das weiter unten aufgeführte Beispiel zeigt, wie die Tabelle dafür vewendet wird: Das Feld question enthält die Frage und answer die Antwort.

Möchte man nun Rechenaufgaben stellen, muss man in der Frage die beiden Platzhalter $d1 und $d2 verwenden. Beim Erzeugen einer neuen QuizSession werden die Platzhalter mit Zufallszahlen im Bereich von 0 bis 10 ersetzt. Die gewünschte Rechenoperation wird als Antwort gespeichert. Die aktuelle Version der Bibliothek unterstützt die Addition '+', Subtraktion '-' sowie Multiplikation '*'.

Möglichkeiten zur Konfiguration

Die Bibliothek wird über die zentrale Datei config.php konfiguriert, die momentan folgende Einstellungen (als PHP-Konstanten) unterstützt:

QDTP
Der Name steht für QuizTablePrefix und gibt einen Präfix an, der zum Tabellennamen gehört. Der Standartwert ist 'quiz_db_', d.h. die unten aufgeführte Tabelle quiz_db_quiz „heißt“ intern QDTP.'quiz'.

Die weiteren Konstanten können für eine lokale Installation genutzt werden; hier stammen die Zugangsdaten für die Datenbank von Jlog.

Weiterhin können globale Skripte am Ende der Datei inkludiert werden, da config.php von allen Klassen der Bibliothek verwendet wird.

Download/Quellcode

Die Bibliothek besteht aus folgenden Dateien:

Download-Archiv
enthält alle Dateien, die man zur Verwendung dieser Sessionbibliothek benötigt
config.php
Diese Datei enthält die Konfiguration der Bibliothek. Zusätzlich können dort Skripte eingebunden werden, die allen Bestandteilen der Bibliothek zur Verfügung stehen sollen. Auf dieser Webseite ist das die Query-Klasse von Jlog.
QuizSession.php
Diese Klasse wird zum Erzeugen einer „QuizSession“ verwendet und enthält daher Code für das Session-Handling. Außerdem wird hier eine zufällige Frage und falls nötig zwei zufällige Zahlen fürs Rechnen ausgewählt.
StoredQuizSession.php
Objekte dieser Klasse stellen eine gespeicherte QuizSession wieder her und prüfen, ob die Sicherheitsfrage korrekt beantwortet worden ist.
string-lib.php
Das Skript stellt einige nützliche Funktionen zum Arbeiten mit Zeichenketten bereit und kann auch losgelöst von QuizSession verwendet werden.

Datenbank-Schemen

Tabellenstruktur für Tabelle `quiz_db_quiz`

CREATE TABLE quiz_db_quiz (
	id bigint(20) unsigned NOT NULL auto_increment,
	question varchar(255) NOT NULL default '',
	answer varchar(50) NOT NULL default '',

	PRIMARY KEY  (id)
);

Tabellenstruktur für Tabelle `quiz_db_quiz_master`

CREATE TABLE quiz_db_quiz_master (
	session_id varchar(32) NOT NULL default '',
	session_date date NOT NULL default '0000-00-00',
	quiz_id bigint(20) unsigned NOT NULL default '0',
	term1 varchar(25) NOT NULL default '',
	term2 varchar(25) NOT NULL default '',

	PRIMARY KEY  (session_id),
	FULLTEXT KEY session_id (session_id)
);

Beispielfragen

INSERT INTO quiz_db_quiz VALUES (1, 'Was ergibt $d1 + $d2', '+');
INSERT INTO quiz_db_quiz VALUES (2, 'Wie viel sind $d1 weniger $d2', '-');
INSERT INTO quiz_db_quiz VALUES (3, 'Was ist $d1 mal $d2', '*');

Lizenz

Copyright © 2007 Robert Bienert, alle Rechte vorbehalten

This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Bugs, Kontakt

Es kann nicht ausgeschlossen werden, dass die QuizSession-Bibliothek Fehler enthält. Momentan existiert kein Bugtracker, allerdings können Fehler oder Anregungen jederzeit per Email (Adresse im Impressum) oder über das Kontaktformular gemeldet werden.