David Langkamp: Formularergebnisse in Textdatei schreiben.

Beitrag lesen

Hi
ich weiß: real time beiträge sind unerwünscht! dies war auch nicht meine Absicht. Aber ich konnte dein Problem schneller als erwartet lösen! ich bin ein blutiger Anfänger und dachte ich müßte mir Stundenlang Zeit dafür nehmen *g* => nach 2 minuten hat es geklappt!

Das script ist einfach eine umgebaute Version eines meiner ersten scripts! Die Kommentare darinen stammen teilweise noch von einem Freund, der mir perl ein wenig erklärt hat.
=> ACHTUNG: du mußt natürlich die url der variable $text richtig angeben und ein schreiben auf diese Datei möglich machen.
Außerdem möchte ich anmerken, dass ich jegliche Verantwortung für schäden oder mißbrauch dieses scripts von mir weiße! ich tue das nur aus Gefallen und habe keinen Bock verklagt zu werden, weil du damit spammst *g*.

Des weiteren möchte ich ein wenig über das Verhalten der Programmierer in diesem Forum meckern! ich verstehe ja, dass ihr dieses script nich schnell schreiben wollt => aber wenn ihr schon antwortet, könntet ihr IMO auch eine Link mit angeben, wo der Suchende Hilfe findet. (z.B ein Perl Tutorial!)

Lange rede kurzer Sinn: hier die scripts:

1. Die html-datei mit dem Formular
____________________________________________________
<html>
<head>
<title>
In die Liste eintragen
</title>
</head>
<body>
<h1> Hier kannst du dich in die Liste eintragen: </h1>
<br>
<form method=post action="cgi-bin/eintragen.pl" name=F>
Ihre E-mailadresse: <input type=text name="mail">
<input type=submit>
</form>
</body>
</html>

2. Die datei liste.txt (kannste nach belieben mit einem kopf versehen)
____________________________________________________
//e-mail list//
david.langkamp@trekzone.de

3. Das eigentliche script:
____________________________________________________
#! c:/perl/bin/perl.exe

hier wird der Perl-Interpreter geladen!!

$text = "./../webpages/liste.txt";

Pfad speichern

read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
#alle Daten holen

@pairs = split(/&/,$buffer);
#hier werden die Paare getrennt

foreach $pair (@pairs) {
#für jedes Paar...   («mail=david.langkamp@trekzone.de» ist ein Paar)

($name,$value) = split(/=/,$pair);
#hier werden Formularfeldname und Formularfelddaten geholt

$value=~tr/+/ /;
#hier wird «+» zu « »

$value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
#hier wird Zeug wie «%F2» zu «(weißnicht?)»

$FORM{$name} = $value;
#und hier werden die Daten im FORM-Array gespeichert!

}

$no_comments unless $FORM{'mail'};

hier beginnt jetzt das Programm

zuerst wird die datei zum schreiben geöffnet

dann wird ein < geschrieben

dann wird die e-mail addy geschrieben

dann wird ein > geschrieben und die datei geschloßen

die meldung über den Eintrag kannst du ändern

open(txt,">>$text") die "Kann nicht oeffnen $text: $!\n";
print txt "<$FORM{'mail'}>\n";
close(txt);
print "Content-type: text/html\n\n";
print "<html><head><title>Danke!</title></head>\n";
print "<body><h1>Danke schön!</h1><br><br>\n";
print "Du hast dich in die e-mail liste eingetragen.\n";
print "</body></html>\n";

scripted by david.langkamp@trekzone.de

-------------------------------------------------------------------

Ok, ok ok - lynchjustiz der programmierer unter euch bitte mal vergeßen!
ich sage ja nicht, dass dieses script effizient ist, aber es erfüllt seinen Zweck.

Gruß,

David

P.S Bei fragen e-mail mir einfach