Das System Multiple-Choice (MC) ist eine Applikation zum Betrieb eines Quiz, Gewinnspiels, Wissenstestes, einer Umfrage o.ä. auf einem Webserver. Es ist auf allen Webservern einsetzbar, die PHP4-Scriptseiten erlauben.
Das Programm MC kann (so wie es in diesem Softwarearchiv vorgefunden wurde) auf den meisten Webservern zum Betrieb gebracht werden. Allerdings sind Anpassungen erwünscht und ausdrücklich empfohlen. Dazu sind Kenntnisse in HTML notwendig, nicht jedoch in der Programmiersprache PHP.
wichtiger Hinweis: Diese Demoversion von MC ist in allen wesentlichen Teilen mit der Vollversion identisch. Es wurde lediglich die vollautomatische Antwortbewertung eingeschränkt. Alle gestalterischen Elemente sind voll funktionsfähig und müssen in der Vollversion nicht noch einmal angepasst werden.
Die Webapplikation Multiple-Choice kann als Quiz, Gewinnspiel, Wissenstest, Umfrage o.ä. verwendet und leicht in ein bestehendes Web integriert werden. Sie ist ein PHP-Script und verlangt serverseitig die Möglichkeit zum Ausführen von PHP-Seiten.
Inhalt, Layout und Funktion wurden voneinander getrennt, sodass
Die jeweiligen Fragen und Auswahlantworten für MC werden in einer Datei namens database.txt gespeichert. Der Name dieser Datei kann aber auch anders gewählt werden (siehe Anpassung). Es handelt sich bei dieser Datenbasis um eine reine Textdatei, die mit jedem üblichen Textverarbeitungsprogramm (Texteditor) erstellt/geändert werden kann. Die gewünschte Struktur der Datenbank kann bei Bedarf abweichend von meinem Muster vereinbart werden.
In der ersten Zeile der Datei database.txt tragen Sie die Namen der Datenfelder Ihrer MC-Variante ein. Ein Muster für die momentane Kopfzeile ist:
Question|Picture|Answer|Choice1|Choice2|Choice3|Choice4 |
Ich empfehle, dieses Grundmuster im Wesentlichen beizubehalten. Sie dürfen aber gern die Feldnamen mit deutschen Begriffen wie
Frage|Answer|Antwort_A|Antwort_B|Antwort_C |
vereinbaren. Lediglich das Feld für die richtige Antwortnummer muß englisch Answer und für ein eventuelles Bild muß englisch Picture heissen. Die Zahl der vorrätigen Auswahlantworten pro Frage darf bis auf 9 erhöht werden.
Solche Spaltennamen können aus Buchstaben und Ziffern bestehen. Als Sonderzeichen innerhalb der Feldnamen sind nur der Bindestrich und der Unterstrich zulässig, jedoch kein Leerzeichen. Groß- und Kleinschreibung innerhalb der Feldnamen wird unterschieden.
Als Trennzeichen zwischen den Feldbezeichnern muß ein Pipe-Zeichen | gesetzt werden, ohne dass Leerzeichen benutzt werden. Die Kopfzeile schließt nach dem letzten Datenfeld mit einem Zeilenwechsel (Enter) ab.
Alle folgenden Zeilen in der Datei database.txt sind Datenzeilen. Jede Zeile bildet einen kompletten Datensatz mit der Frage, der Antwortnummer und den Auswahlantworten. Ihre Datenbank könnte damit im Beispiel so aussehen:
Question|Picture|Answer|Choice1|Choice2|Choice3|Choice4 Aus welcher Zeit stammen diese Artikel?|geraet.jpg|2|1920|1965|1995|2002 Wieviele Regenschirme sind auf dem Bild zu sehen?|schirm.jpg|3|3|4|5|6 |
Für gewöhnlich sollte zu jeder Frage in der Datenbank einunddieselbe Anzahl von Wahlantworten zur Verfügung stehen. Wollen Sie abweichend von der Regel zu einer bestimmten Frage weniger Antworten anbieten, müssen dennoch genausoviele |-Zeichen in diesem Datensatz vorhanden sein. Es folgen also eventuell zwei oder mehrere ||-Zeichen unmittelbar aufeinander.
Falls Sie sich gut mit HTML-Befehlen auskennen, können Sie in den Frage- und Antworttexten auch einzelne Formatierungen für besondere Textteile vornehmen. Soll beispielsweise ein Wort fett dargestellt werden, ist es in die HTML-Tags <B> und </B> einzuschließen.
Question|Picture|Answer|Choice1|Choice2|Choice3|Choice4 Wieviele <B>Regenschirme</B> sind auf dem Bild zu sehen?|schirm.jpg|3|3|4|5|6 |
Zur Anzeige der Beiträge des MC-Programmes wird die Detailschablonen question.htm benötigt. Bei dieser handelt es sich im Wesentlichen um eine übliche HTML-Seite, die Sie mit jedem Ihnen vertrauten HTML-Werkzeug erstellen und bearbeiten können. Zur Formatierung der Fragen und Auswahlantworten empfehle ich die Arbeit mit einer (blinden) Tabelle.
Die Seite question.htm beinhaltet außer Ihren individuellen/persönlichen Gestaltungselementen Platzhalter für die Frage, für das eventuelle Bild und für die Auswahlantworten. Die Auswahlmöglichkeiten über Radiobuttons sind in ein Formular integriert.
In den HTML-Code für question.htm bauen Sie demnach an passenden Stellen die Feldnamen der Felder Ihrer Datenbank eingeschlossen in Pipezeichen | als Platzhalter ein. Enthält Ihre Datenbank beispielsweise ein Feld Question, so setzen Sie in question.htm den Platzhalter |Question|, wobei Sie bitte auf exakte Schreibweise des Feldnamens achten. Auf einen Platzhalter für das Datenfeld mit der richtigen Antwortnummer sollten Sie natürlich verzichten!
Für das etwaige Bildfeld Picture belassen Sie bitte meine Konstruktion in dieser Vorlage:
<IMG SRC="|Picture|" ALT="Bild"> |
Die Schablone question.htm muß pro Auswahlantwort einen Radioschalter als
<INPUT TYPE="radio" NAME="Answer" VALUE="1"> |
An beliebiger Stelle des Formulars unterhalb der Radioschalter muß ein Platzhalter |Hidden| eingebaut sein. Hier fügt das Programm zur Laufzeit unsichtbare Zusatzinformationen ein. Der Platzhalter |Hidden| wird also später selbst nicht mehr sichtbar sein.
Den Formular-Schaltknopf zum Absenden der Antwort können Sie völlig beliebig gestalten. Allerdings muß auch er nach den Antworten angeordnet sein.
Die Aktion für das Formular ist zu belassen auf:
<form action="mc.php" method="POST" onSubmit="return CheckInput(4)"> |
Dabei verweist die Ereignisbehandlung onSubmit auf die Javasript-Funktion CheckInput() zwecks Prüfung auf Eingabe einer Antwort laut meiner beiliegenden Demo-Schablone. Hier haben Sie entsprechend Ihren HTML- und JavaScript-Kenntnissen völlig freien Handlungsspielraum. Sie können auch ganz auf diese Eingabenprüfung verzichten.
Nach Beantwortung der Fragen soll sich der Benutzer namentlich ausweisen um in die Bewertung zu kommen. Unter dem Dateinamen register.htm existiert dafür eine HTML-Seite mit dem entsprechende Formular.
Das Formular kann übliche Textfelder, Auswahllisten, Radiobuttons und Checkboxen enthalten. Anzahl und Umfang der Felder sind völlig frei gestellt. Jedes Eingabefeld benötigt einen eindeutigen Namen. Ein Feldname Answers darf dabei nicht verwendet werden.
Nach den Formularfeldern ist wiederum ein Platzhalter |Hidden| in das Formular einzubauen, der zur Laufzeit duch unsichtbare Informationen ersetzt wird.
Auch dieses Formular wird in meinem Muster von einer JavaScript-Funktion CheckInput() vor dem Absenden geprüft, welches Sie bei Veränderung der Formularfelder gegebenenfalls ändern/löschen sollten.
Nach dem Eintragen seiner Personendaten wird der Benutzer auf eine Bestätigunggseite geleitet. Das ist im Falle der korrekten Entgegennahme der Daten die Seite quit_ok.htm. Für den Fall, dass die Daten nicht korrekt verarbeitet werden konnten, wird die Seite quit_err.htm eingeblendet.
Beide Seiten sind übliche HTML-Seiten ohne jede Besonderheit. Gestalten Sie bitte diese beiden Seiten nach Ihrem Gutdünken und bauen Sie zweckmäßge Hyperlinks zurück in Ihr Web ein.
Dem Softwarearchiv liegen zwei Fassungen des Scriptes mc.php bei. Sie benötigen nur eine davon. Die Originaldatei mc_m.php versendet das Ergebnis der Fragenbeantwortung eines Teilnehmers per e-Mail an Sie als Webmaster. Die Fassung mc_s.php hingegen speichert das Resultat der Teilnehmer in eine Ergebnisliste auf dem Server. Benennen Sie die passende Variante in mc.php um!
In der von Ihnen gewählten Variante des PHP-Scriptes müssen Sie wenige Stellen in mc.php individuell anpassen. Achten Sie darauf, dass Sie keine Änderungen vornehmen, deren Tragweite Sie nicht überblicken. Die einfachen Änderungen finden jeweils nur in den ersten Zeilen des Scripts statt. Verwenden Sie dazu einen simplen Texteditor (wie das Windows-Programm Editor).
In den Scripts mc.php gibt es je nach Variante folgende Parameter zur individuellen Anpassung.
Original-Parameter | Erklärung |
$DataBaseName='database.txt'; | Name der Datenbank im Unterverzeichnis /data Sie können hier auch einen eigenen unbekannten Namen verwenden, um unbefugte Blicke in die Datenbank zu verhindern. |
$PictMaxWidth=200; | maximale Breite, in der ein Bild angezeigt wird Grössere Grafiken werden automatisch auf diesen Wert skaliert. |
$MailTo='webmaster@domain.com'; | Empfängeradresse für die Ergebnismails |
$MailFrom='webmaster@domain.com'; | Absenderadresse der Nachrichten mit den Resultaten |
$MailSubject='Multiple Choice (Resultat)'; | Betreff der Ergebnismails |
$ResultListName='results.csv'; | Dateiname der Ergebnisliste im Unterverzeichnis /data Der Name kann zum Schutz vor neugierigen Blicken geändert werden. Die Endung muß nicht CSV sein. |
$ResultDateFormat='m/d/y'; | Format des Datums in den Resultaten die Buchstaben d, m und y sind obligatorisch. Deren Reihenfolge und die Trennzeichen dazwischen können Sie ändern. |
$ResultDataSeparator=','; | Trennzeichen zwischen den einzelnen Daten im Ergebnis Sowohl in der e-Mail als auch in der Resultatenliste werden die Daten als Datensatz angeordnet. Je nach Programm, mit dem Sie die Resultate weiterverarbeiten, können Sie hier eventuell ein Semikolon oder Leerzeichen eintragen. Ein Tabulator als Trennzeichen muß als \t vereinbart werden |
Achten Sie bitte bei allen Parameterzeilen auf das Semikolon am Zeilenende und die Hochkommas vor und nach dem Wert.
Transferieren Sie die MC-Dateien nach individueller Anpassung in Ihr Web, sinnvollerweise in ein eigenes Verzeichnis. In das Hauptverzeichnis des Programmes sind mindestens die Dateien mc.php, question.htm, register.htm und quit_ok.htm und quit_err.htm sowie die Dummy-Grafik blank.gif zu speichern. Für mein Musterlayout ist ausserdem die Grafik logo.gif notwendig.
In das Unterverzeichnis data des Programmes MC gehören die Datenbank sowie alle Ihre Grafiken. Falls Sie die Ergebnisse in eine Ergebnisliste schreiben wollen, sollte diese leere Resultatedatei bereits im Unterverzeichnis data vorhanden sein. Diese muß von PHP unbedingt geschrieben werden dürfen. Setzen Sie die Schreibrechte für die Ergebnisliste passend. Unter Unix/Linux ist meist "rw-rw-rw-" (cmod 666) geeignet.
Der Standardeinstieg in das Programm MC ist der Aufruf von mc.php. Der Aufruf einer Schablonen question.htm oder register.htm hingegen ist sinnlos. Diesen Aufruf von mc.php sollten Sie Ihren Besuchern als Hyperlink anbieten.
Das Programm Multiple-Choice selbst verwendet keine Frame-Befehle. Er kann aber in andere Webseiten eingebunden werden und dort innerhalb von Frames laufen.
Die Vollversion von MC ermittelt vollautomatisch die Anzahl der richtigen Antworten und trägt diese mit in die Ergebnisbenachrichtigung ein. Damit vereinfacht sich die Auswertung entscheidend.
Die Vollversion erhalten Sie nach Bestellung über mein online-Formular oder per e-Mail.
Werbung: Bitte beachten Sie gegebenenfalls mein mit Multiple-Choice verwandtes Programm WebVote für einfache Umfragen oder Abstimmungen.