Evaluationssystem: Generierung der Zufalls-IDs

Vie­le Wege füh­ren nach Rom. Ich stel­le einen ein­fa­chen vor (Bul­ku­pload) und einen kom­ple­xe­ren (LDAP). Bei LDAP set­ze ich etwas mehr Kennt­nis­se auf der Kon­so­le vor­aus.

Bei bei­den Wegen muss man auf jeden Fall die Seri­en­brief­funk­ti­on einer Text­ver­ar­bei­tung beherr­schen, um die IDs dann in indi­vi­dua­li­sier­ter Form an die Umfra­ge­be­tei­lig­ten aus­ge­ben zu kön­nen. Natür­lich wird  auch gleich die Fan­ta­siee­mail­adres­se deak­ti­viert (email­stop).

Die eigent­li­che Zufalls­rou­ti­ne sieht so aus:

func­tion getrandstr($length) {
$new­pass = „”;
$laenge=$length;
$string=„abcdefghikmnopqrstuvwxyz23456789”;
mt_srand((double)microtime()*1000000);
for ($i=1; $i <= $laen­ge; $i++) {
$new­pass .= substr($string, mt_rand(0,strlen($string)-1), 1);
}
return $new­pass;
}

Aus dem Zei­chen­vor­rat wur­de alle Zei­chen ent­fernt, die sich ver­wech­seln las­sen, etwa „1” und „l” (klei­nes L und die Zahl Eins) oder „0” und „O” (Null und Buch­sta­be O), damit es spä­ter nicht zu Tipp­feh­lern kommt.

Ich habe das Script für mich inzwi­schen so wei­ter­ent­wi­ckelt, dass es nicht nur die IDs selbst, son­dern auch noch via fpdf die Brie­fe für die Umfra­ge­be­tei­lig­ten als hüb­sches PDF erstellt — ein Klick, alles zum Drucken/Verteilen fer­tig. Da erfah­rungs­ge­mäß jede Schu­le ihr indi­vi­du­el­les Lay­out wünscht, erscheint mir der Weg über die Seri­en­brief­funk­ti­on für die All­ge­mein­heit der gang­bars­te zu sein.

Wir nut­zen für die Umfra­gen übri­gens ein sepa­ra­tes „Müll­mood­le”, des­sen Daten­bank uns nicht viel bedeu­tet und ger­ne „ver­saut” wer­den darf. Neben­bei ent­fällt gleich das Risi­ko, dass Drit­te unge­wollt Zugriff auf die Ergeb­nis­se erhal­ten. Das Rech­te­sys­tem von Mood­le wird näm­lich ger­ne ein­mal unüber­schau­bar…

Mög­lich­keit A: Per Bul­ku­pload — der ein­fa­che Weg

Wer nicht über einen eige­nen LDAP-Ser­ver ver­fügt oder sich des­sen Ein­rich­tung nicht zutraut, kann die benö­tig­ten anony­men IDs ganz ein­fach im Brow­ser erstel­len. Dazu habe ich ein klei­nes Script geschrie­ben, wel­ches die­se Auf­ga­be recht ordent­lich erle­digt — aber nicht beson­ders sexy aus­sieht. Die­ses Script steht jedem zur frei­en Ver­fü­gung:

klick

Es wird Ihnen eine CSV-Datei gelie­fert die Sie auf ein­fa­che Wei­se dazu nut­zen kön­nen, per Bul­ku­pload die anony­mi­sier­ten IDs zu gene­rie­ren. Gleich­zei­tig kön­nen Sie mit die­ser CSV-Datei einen Seri­en­brief für Ihre Umfra­ge­teil­neh­men­den, etwa in Open­Of­fice erstel­len, indem Sie die­se Datei ein­fach als Daten­quel­le nut­zen.

Mög­lich­keit B: Per LDAP-Anbin­dung (der schwie­ri­ge­re Weg)

Wir brau­chen wie­der ein paar Pake­te. Also auf die Kom­man­do­zei­le gegan­gen und mutig getippt:

apt-get install php5-ldap php5-cli php5-cgi

Dann gibt es ein etwas umfang­rei­che­res Script mit einem rela­tiv gro­ßen Kon­fi­gu­ra­ti­ons­teil, für den eini­ge Daten benö­tigt wer­den (in Klam­mern ste­hen die Bei­spiel aus dem ers­ten Teil die­ser Anlei­tung):

  1. Der LDAP-User (admin)
  2. Das LDAP-Admi­nis­tra­tor-Pass­wort (wur­de bei der Ein­rich­tung des slapd ver­ge­ben)
  3. Die Schul­do­main (schul­do­main)
  4. Die TLD der Schul­do­main (tld)
  5. Den Bezeich­ner der Schul­do­main (FSG)

Ein Bei­spiel:

Haben Sie als LDAP base-dn „riecken.de” ein­ge­ge­ben, lau­tet die Schul­do­main „riecken” und die TLD „de”. Sie kön­nen das Script hier down­loa­den:

klick

Schau­en wir auf den Kon­fi­gu­ra­ti­ons­teil des Scrip­tes, bei dem die Tei­le mit Stern­chen (*) ver­se­hen sind, die spä­ter noch bei der Kopp­lung von Mood­le und dem openLDAP benö­tigt wer­den:


# Start der Kon­fi­gu­ra­ti­on

$organisation=„evaluation”;# Name des LDAP-Bau­mes mit den IDs (*)
$domain=””;                # LDAP-Base Domain (schul­do­main) (*)
$tld=””;                   # LDAP Base Domain (tld) (*)
$maildomain=”@nomail.xy”;  # Domai­n­an­teil der E-Mail­ad­di
$city=””;                  # Ort der Schu­le
$lang=„de_utf8”;           # loca­le
$description=„Zufalls-ID”; # spä­te­re Beschrei­bung
$groupnumber=4000;         # fik­ti­ve Grup­pen­num­mer
$usernumberstart=3000;     # UID-Start­punkt (soll­te so meis­tens pas­sen)
$count=„50”;               # Anzahl der gewu­ensch­ten User-IDs
$anz=„6”;                  # Anzahl der Zufalls­zei­chen für Pass­wort und User­na­me

# LDAP Zugangs­da­ten

$ldap_url=„127.0.0.1:389”; # URL des slapd / AD
$ldap_admin=„admin”;       # idea­ler­wei­se nicht der admin…
$ldap_passwd=„geheim”;     # Admi­nis­tra­tor­pass­wort des LDAP

# Ende der Kon­fi­gu­ra­ti­on

Vie­les ist — den­ke ich selbst­er­klä­rend. Es darf nur kei­ne Varia­ble leer­blei­ben. Die­ses Script macht man aus­führ­bar und ruft es auf der Kon­so­le des Ser­ver, auf dem zuvor slapd (openLDAP) instal­liert wur­de, fol­gen­der­ma­ßen auf:

eval_to_ldap.php > ids.csv

Es ent­steht im glei­chen Ver­zeich­nis eine Datei mit dem Namen „ids.csv”, die man — wie beim Bul­ku­pload — mit einer Text­ver­ar­bei­tung  als Daten­quel­le für einen Seri­en­brief nut­zen kann.

Ach­tung!

Jeder neue Auf­ruf die­ses Script löscht alle zuvor ange­leg­ten IDs! Das geschieht nur im LDAP! IDs, die sich schon in einem Mood­le­sys­tems ange­mel­det haben, blei­ben mit ihren Daten in der Mood­le­da­ten­bank vor­han­den, kön­nen sich aber nicht mehr ein­log­gen.

zurück | vor

Facebook Like

3 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.