XSign: Unterschriftenliste
Dieses Skript erlaubt die Einrichtung einer Online-Unterschriftensammlung.
Source Code
| Perl Sourcecode | |
| xsign.pl | Das Skript xsign.pl |
| Achtung: Sollte beim obigen Download-Link fehlerhafterweise als Dateiname "xload.cgi" angegeben sein, ignorieren Sie dies und benennen den Dateinamen um. Einige Browser ignorieren leider den Standard zur Übermittlung von Dateinamen... | |
Wirkungsweise
Eintragsformular
Es handelt sich um ein ganz normales Formular:
Der zugehörige HTML-Code enthält nichts besonderes:
<form action="/cgilocal/xsign/xsign.pl"> <input type="hidden" name="sign" value="demo"> Ihr Vorname lautet: <input type="text" name="vorname" size="20"> <br> Ihr Nachname lautet: <input type="text" name="nachname" size="20"> <br> Sie kommen aus welchem Ort: <input type="text" name="ort" size="30"> <br> Haben Sie eine Webadresse (URL)? <input type="text" name="url" size="30"> <br> Wollen Sie noch eine kleine Notiz hinterlassen? <br> <textarea name="notiz" rows="4" cols="60"></textarea> <br><br> Ich stimme der Veröffentlichung meines Eintrags zu: <input type="checkbox" name="valid" value="1"> <input type="submit" value=" Abschicken "> </form>
Wichtig ist diese Zeile:
<input type="hidden" name="sign" value="demo">
Hier geben Sie an, welche Zieldatei gemeint ist. Wobei dies hier nicht der Dateiname ist, sondern der Alias für den Dateinamen. Der echte Dateiname wird nicht über Web übertragen, sondern wird im Skript in der Zeile 46 definiert.
Liste anzeigen
Die Unterschriftenliste kann man sich am Besten über ein SSI-Skript anzeigen, bzw. ueber
den Skriptaufruf, welcher dann in einem eigenen JavaScript-Fenster angezeigt wird.
Beispiel für den SSI-Aufruf:
Unterschriftenliste
| Wolfgang Wiese Erlangen |   | 23.5.2003, 18:31 Uhr | Dies ist ein Demotext |
| Wolli Wolfgang   |   | 23.5.2003, 18:52 Uhr | test |
| Daniel Duesentrieb   |   | 23.5.2003, 18:53 Uhr | Also ich finde das nun garnicht so gut. Da muesste jetzt noch was eingebaut werden, dass nicht doch Leute mit verschiedenen Namen beliebig oft sich eintragen, oder? |
| sdasd dasdasd dasdasd |   | 2.7.2003, 2:21 Uhr | dasdsa |
| hfg hfghfgh fghfgh |   | 4.7.2003, 20:28 Uhr | fghfgh |
| Sascha Heldt Paderborn |   | 11.9.2003, 18:53 Uhr | ? |
| tzutruz rtzurtuz tzurtzur |   | 30.9.2003, 23:16 Uhr | trzuztrurtuzrtz |
| a b c |   | 6.10.2003, 13:08 Uhr | auch test |
| test test NDS |   | 29.10.2003, 16:58 Uhr | test |
| Nina Müller Schweiz |   | 20.11.2003, 16:18 Uhr | nein |
| bin laden haschisch |   | 25.12.2003, 18:25 Uhr | ey ey ey |
| michi susi lana |   | 4.1.2004, 16:55 Uhr | Hallo |
| Birn Bach Birnbach |   | 18.1.2004, 15:44 Uhr | Das ist mal ein Test |
| dsf sdf df |   | 18.1.2004, 17:59 Uhr | df |
| keinen meinen gobs nicht |   | 19.1.2004, 11:25 Uhr | neine |
| ewrwe wer wer |   | 11.2.2004, 16:57 Uhr | wrwe |
| testerq tester musterort |   | 14.4.2004, 12:14 Uhr |   |
| Franz Willhelm Entenhausen |   | 4.5.2004, 1:58 Uhr | jo, nett |
| sweet-plumpers sweet-plumpers   |   | 2.9.2004, 16:27 Uhr | plumpers sweet |
| Peter hj gkj |   | 3.9.2004, 15:11 Uhr | gk |
| 1 2 3 |   | 13.9.2004, 17:00 Uhr | 5 |
| Nächste Seite | |||
Dies sieht dann wie folgt aus:
<!--#include virtual="/cgilocal/xsign/xsign.pl?sign=demo&view=1" -->
Alternativ kann man natürlich auch via Link auf die Liste gehen: Liste aufrufen
Die Ergebnisse, das heißt die Unterschriften, werden als CSV-Datei gespeichert und können als solche auch in anderen Programmen weiterverarbeitet werden. Hier die Liste, die aus obiger Demo generiert wird: xsign-demoliste.csv.
Installation
Kopieren Sie die Dateien xmas.pl und web.pm in Ihr CGI-BIN-Verzeichnis. Setzen Sie die Ausführungsrechte
mittels CHMOD. Z.B.: chmod 755 xmas.pl.
Ändern Sie im Programm xmas.pl folgende Zeilen:
Zeile 1: #!/local/bin/perl5 |
Geben Sie hier Ihren eigenen Pfad zu Perl ein, falls er von diesem abweicht. |
Zeile 27: my $THISURL = "/cgilocal/xsign.pl"; |
Geben Sie hier die URL zum Skript an, falls Sie dieses in ein anderes Verzeichnis tun oder es umbenennen. |
Zeile 29: my @NEEDED_VALS = ("vorname", "nachname", "valid"); |
Hier können Sie angeben, welche <input name="">-Einträge notwendig sind, damit der Eintrag akzeptiert wird. Mögliche Eingaben sind: vorname, nachname, ort, url, notiz, organisation |
Zeile 33: my $MAXLENGTH_NOTIZ = 200;; |
Wie lange darf das Kommentarfeld maximal sein. |
Zeile 35: my $OUTPUT_LINE_LAYOUT = "<TR bgcolor=\"#SWITCHSTRING#\"><TD>#URLREFSTART##VORNAME# #NACHNAME##URLREFEND#<BR><font size=-1>#ORT#</font></TD><TD>#ORGANISATION#</TD><TD><font size=-1>#ZEIT#</font></TD><TD>#NOTIZ#</TD></TR>"; |
Hier geben Sie an, wie eine Tabellenzeile für die Anzeige einer Unterschrift jeweils aussehen soll. Die Variablen der Form #Name# entsprechen (ohne den #) den Namen, die Sie bei der Eingabemaske definieren. |
Zeile 44: my $MAX_DISPLAY_LINES = 50; |
Wieveile Unterschriften sollen maximal zur selben Zeit dargestellt werden. |
Zeile 46: my %INDEX = ("demo", "../../misc/xsign-demoliste.csv"); |
Hier werden den Dateinamen, in denen die daten als CSV gespeichert werden, Aliase
zugewiesen. Die jeweilige Umfrage wird beim Webaufruf nür über einen Alias, hier demo,
geleistet. Dadurch wird verhindert, daß jemand versucht, unschöne Dateinamen
zu übergeben und Kommandos auf dem System auszuführen.
Sie können somit gleichzeitig mehrere Listen verwalten. Die Syntax ist hier immer: "Aliasnamen" , "Pfad zur Datei",
wobei darauf zu achten ist, daß auenrum die runden Klammern erhalten bleiben und
die Dateien auch für den Webserver beschreibbar sind.
|


