ExamMail
Ein automatisches Testprogramm.
Konzept von John Oyston
Copyright (C) 1996 by Carsten Schafer
ExamMail enthält 6 Teile:
- Die Frageseite. Ein HTML-Formular mit mehreren HIDDEN-FIELDS und einigen Kommentar-Tags
die die Fragen einschliessen
- Eine Konfigurationsdatei (demo1.cfg). Eine Textdatei mit den Antworten und verschiedenen
Konfigurationsoptionen.
- Das CGI-Script selbst (exammail.cgi), welches PERL4 erfordert.
- Cgi-lib.pl. Eine kleine PERL-Library, die vom Script benötigt wird.
- Einige Grafiken (back.jpg und rbline.gif) um das Aussehen zu verbessern.
- Die Datei "demo1expl.htm". Ein HTML-Dokumen. Wenn das Script eine Seite
generiert, wird das Script den Link auf diese Seite setzen, auf welcher sich der Besucher
Ihrer Seite detailierte Informationen einlesen kann.
ACHTUNG!!!!!!
Das Script arbeitet NICHT mit Sendmail. Aber mit MAIL. Bitte fragen Sie Ihren
Administrator nach dem Verzeichnis, in welchem dieses Programm liegt. Sollten Sie einen
Telnet-Zugang haben, so geben Sie im Telenet-Fenster bitte folgendes an: whereis mail
In der Regel wird Ihnen der Pfad zu Mail (/usr/bin/mail oder /bin/mail) ausgegeben. Dies
müssen Sie in der .cgi und in der .cfg Datei angeben.
Das CGI muss so modifiziert werden, daß der korrekte Pfad zu PERL und der Pfad zu MAIL
stimmt. Die eMail-Adresse des Webmasters ist auch anzugeben. Die .cfg Datei beinhaltet
auch noch mehrere Einstellungsmöglichkeiten, die immer dokumentiert sind. Die Angaben in
der .cfg Datei übertreffen immer die Angaben in der .cgi Datei. Sie können das Script
nachdem es einmal läuft auch mit mehreren HTML-Seiten betreiben. Das heisst, Sie können
unterschiedlich viele Tests über ein Script ausführenn.
Die einfachste Installation ist, wenn Sie alle Dateien in ein Verzeichnis kopieren (Sie
müssen da natürlich CGI ausführen können) und dann das Script selbst mit den Rechten
755 belegen. Bedenken Sie bitte, das CGI-Script sowie die Library im ASCII-Modus und nicht
im Binary-Mode auf den Server zu laden.
Installation:
- (Optional und nicht erforderlich für den ersten Lauf des Programms) Ändern Sie den
Pfad zu den Antwortdateien.
In der Datei exammail.cgi geben Sie dann bitte den Pfad zu dem Verzeichnis an, wo
die Antworten gespeichert sind. z.B. /usr/local/httpd/htdocs/answers/ und stellen sicher,
daß der Pfad mit einem abschliessenden Slash (/) schliesst. Lassen Sie diese
Variable frei, schaut exammail.cgi im derzeitigen Verzeichnis nach der
entsprechenden Datei. Dies ist ok, wenn die Datei auch da ist.
- Uploaden (FTP) Sie alle Dateien (mit Ausnahme dieser Datei) auf den Server. Benutzen Sie
hierzu den ASCII-Modus für das Script und die Library.
- Geben Sie dem Script die Rechte 755
Das Format der CFG-Datei:
- Für jeden Test muss eine Datei mit dem Namen für den Test existieren. Wenn der Teste
mathematiktest heisst, muss es auch eine Datei mathematiktest.cfg geben.
# Die volle URL zur Datei exammail.cgi
def_explain_url=http://something..
# Das Markierungsschema ( Wert für Richtig, geraten, falsche Antwort)
def_scheme=2,0,-1
# Die Art des Reportierens (0 - wenig ,1, 2 - das meiste)
#0 gibt keinen Report aus, 1 gibt nur bei falschen Antworten einen Report aus,
#2 Reportet alles
def_report=1
# Horizontale Linien
def_rule=<HR>
# Der Inhalt des Body-Tags
def_body=BGCOLOR="#DDFFFF" TEXT="#000099" BACKGROUND="back.jpg"
# Der Pfad zum Mailprogramm
def_emailprog=/usr/bin/mail
# Der Testgeber
#Geben sie hier Ihre Mailadresse an
def_marker=fred@compuserve.com
# Der Titel des Quiz´s
def_header=A New Test
# Graduieren Sie die korrekten Antworten
grd=90,Excellent!
grd=80,Ziemlich gut!
grd=70,Gut!
grd=60,Naja
grd=50,Kaum jemand war schlechter
grd=0,Schlecht
# Die Antworten für die von Ihnen gestellten Fragen
ans=q1,c
ans=q2,d
ans=q3,Richtig
ans=q4,2
ans=q5,Falsch
- Wenn einige der def_variablen nicht angegeben sind, benutzt das programm seine
Voreintsellungen
- Die Reihenfolge der ans=Zeilen muss die gleiche sein, wie in der HTML-Datei.
- Die Reihenfolge der grd=Zeilen muss absteigend erfolgen.
Wenn die grd= Zeilen nicht gegeben sind, benutzt das Programm seine eigene
Graduierungsskala
- Die einzigen NICHT-OPTIONALEN Einträge innerhalb dieser Datei sind die ans=Zeilen
Konfiguration:
- Sehen Sie sich die Datei demo1.htm an um Informationen über die
erforderlichen angaben für exammail.cgi zu erhalten
Die meisten der
untenstehenden Variablen können übergangen werden, wenn man sie in der .cfg-Datei
vornimmt (siehe oben)
def_pathtests sollte auf ein sicheres Verzeichnis auf dem Server zeigen.
Die folgenden Variablen können exammail.cgi vorgenommen werden:
- $def_rule:
- Die HTML-Marke für horizontale linien
$def_rule = "<BR><IMG SRC=\"rbline.gif\"><BR>";
- $def_marker:
- Die eMail-Adresse des Testverwalters. Stellen Sie sicher, daß Sie einen Backslash (\)
vor das @-Zeichen setzen. Es können auch mehrere Adressen eingetragen werden.
$def_marker = "m1\@bus.com m2\@bus2.com";
- $def_report:
- Dies ist der Stufe, wie reportiert wird (0,1,2). Für Stufe 0 gile: Nur korrekte
Antworten reportieren. Für Stufe 1 gilt: Nur inkorrekte Antworten werden reportiert und
für Stufe 2 gilt: Alle Antworten werden reportiert.
$def_report = 2;
- $def_emailfile:
- Dies ist das Verzeichnis in welchem eine temporäre Datei liegt, die eine präparierte
eMail an den Besucher sendet. Die aktuelle Datei wird aus einer generierten Nummer
konstruiert, so daß mehrere Leute gleichzeitig den gleichen Test absolvieren können ohne
daß die eMails später durcheinander geraten. Dies Datei wird gelöscht, wenn die eMail
verschickt ist.
-
- $def_tmppath:
- Das Verzeichnis in welchem temporäre Dateien abgelegt werden können.
-
- $def_emailprog:
- Dies ist der Name des Programmes, welches die Mail versendet. Auf den meisten Servern
ist dies /bin/mail. Es sind folgende Argumente erlaubt:
/bin/mail -s "Subject" email_addr ...
- $def_pathtests:
- Dies ist das Verzeichnis (mit abschliessendem Slash) in welchem die Antworten und
Wortgraduierungen abgelegt werden. Wenn das Script exammail.cgi im Verzeichnis
public_html/ läuft, ist es eine Gute Idee hier ../ anzugeben
Der Dateiname für die
Konfigurationsdatei ist wie folgt festzulegen:
configfile = def_pathtests + testname + ".cfg"
Autoren:
-