Formularergebnisse in Textdatei schreiben.
Raffi
0 Cheatah0 Poldi0 Nachtrag0 David Langkamp
Hallo miteinander
Ich habe folgendes Problem:
Auf meiner Seite soll ein Formular sein, mit einem Textfeld und einem Submit Button.
In das Textfeld soll der Besucher seine Mail Adresse eingragen können.
Beim betätigen des Submit Knopfes soll vorne an die Mailadresse das Zeichen "<" angefügt werden, und hinten das Zeichen ">".
Danach soll der Feldinhalt in eine Textdatei auf dem Webserver auf eine neue Zeile eingefügt werden.
Wie mach ich das?????
Gruss
Raphael
Hi,
Wie mach ich das?????
mit CGI, PHP oder einer anderen serverseitigen Technologie. Bei geeigneter Wahl der Programmiersprache ein verhältnismäßig triviales Problem.
Nein, mit JavaScript oder gar HTML hast Du da keine Chance.
Cheatah
Hi,
ich bin auch ein Anfänger in Perl und habe mir über das gleiche Problem auch schon gedanken gemacht.
Meiner Meinung nach solltest du dir:
Ein Perl Tutorial runterladen (aber erstmal alles in selfhtml verschlingen!).
Dann ein script schreiben:
=> eine html-datei mit einem formular
=> ein Perl (meinetwegen auch in ner anderen Sprache) script liest due daten ein
=> du legst Variablen für die Zeichen "<" und ">" fest (z.B $anfang, $ende)
=>das scripts öffnet eine Textdatei zum reinschreiben. >> nicht vergeßen!!
=>dann werden die Eingaben erstmal geprüft (ob es auch ne e-mail addy ist und kein dummer kommentar oder gar eine reihe perl-befehle!!)
=>dann schreibst du in die text-Datei
print TXT "$anfang $email $ende"
(die Namen der Variablen mußte selbst verstlegen, und ich bin mir net sicher ob das funzt!)
Ok ok => wenn mich jetzt ein Programmierer oder freak mit ahnung dafür lynchen will, bitte!
Ich bin halt ein blutiger Anfänger *g*.
Ich werde bei Zeit dieses Script für dich schreiben - oder es versuchen (ohne gegenleistung!) *g*. E-mail mir einfach ob du das script noch brauchst.
David
Hi!
Deine Frage ist sehr allgemein gestellt. Was erwartest Du jetzt? Daß Dir jemand das Script schreibt und Du es nur
uploaden mußt? Ich würde Dir gerne helfen, aber ein paar Grundlagen solltest Du Dir schon aneignen. Auf jeden Fall
brauchst Du dazu ein serverseitiges Script. PHP, Perl oder sowas sollte funktionieren.
Ciao
Poldi.
CGI wäre mir am Liebsten. Nur hab ich davon wenig Ahnung.
Gruss
Raffi
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
$text = "./../webpages/liste.txt";
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'};
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";
-------------------------------------------------------------------
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