Philipp Hasenfratz: Script das Einträge eines Formulars in eine Datei speichert

Beitrag lesen

Halihallo

Danke, allerdings funktioniert das script trotzdem nicht wie es funktionieren sollte.

ver... Hm. Schade.

wieso muss statt != , ne hin? != steht doch für ungleich.

Es sind beide Notationen richtig. != ist genau das selbe wie ne. Genauso wie == genau das selbe ist wie 'eq'.
Stopp! - Jetzt habe ich es gleich bemerkt: mit != funktionierte es nicht, aber 'ne' funktioniert. Faszinierend... Na, ja, verwenden wir eben 'ne'...

Leider wurde keines der Probleme Behoben. ;(

Was??? - Na, mal schaun... Muss doch irgendwie zu schaffen sein.

das script schreibt wieder nur den ersten abgeschickten eintrag in die datei.

Passwortbestätigung wird nicht überprüft, Eingaben immernoch nicht in der Ausgabe sortiert.

Wie und wonach soll sortiert werden? - Dann kann ich dir den Code noch kurz anpassen.

Und danke für den Hinweiß mit dem Anhängen, Überschreiben und Lesen von Daten, das habe ich noch nicht gewusst, Bin ja noch ein blutiger Anfänger.

Kein Problem. Nur weiterfragen oder am Besten sich auch mal mit der Doku beschäftigen ;)

Also: Ich hab mich mal kurz deinem Programm angenommen und noch einige Bugs gefunden. Es sollte jetzt funktionieren (hab's getestet), bis auf die Sortierung. Also, ich weiss nicht mehr alles, was ich verändert habe, aber es waren noch einige logische Fehler zu finden. Am Besten zu vergleichst deine alte Version mit meiner neuen:

Ach ja, jetzt funktioniert es auch mit use strict ;-)

Viel Glück, viel Spass und viele Grüsse

Philipp

___END___
___DATA___

#!/usr/bin/perl

use strict;

my $datfile="mitteilung.txt";

print "Content-type: text/html\015\012\015\012";

####### Formulardaten einlesen ###################
use CGI;
my $cgi = new CGI;   # OOP!!!
my $name = $cgi->param("vuname");
my $mitteilung = $cgi->param("mitteilung");
my $passwort = $cgi->param("pw");
my $passwort2 = $cgi->param("pwst");
my $email = $cgi->param("email");

####### Diese Zeilen werden gelöscht, nur Testzweck #######
#my $name = 'Hallo Welt';
#my $mitteilung = 'dies ist die Mitteilung';
#my $passwort = 'pw123';
#my $passwort2 = 'pw123';
#my $email = 'hello@entryon.ch';

if ($passwort ne $passwort2)
{
   print "<html><head><title>FEHLER</title></head>\n";
   print "<body bgcolor="navy" text="red" link="yellow" alink="lime" vlink="yellow"\n";
   print "<h1><center>Es ist ein Fehler aufgetreten</center></h1>\n";
   print "<br><br>\n";
   print "Ihre Passwörter $passwort und $passwort2 stimmen nicht überein! <br>\n";
   print "<br><br><a href="javascript:history.back()">Zurück</a></body></html>\n";
   exit; die "byebye";
};

print "<html><head><title>Vielen Dank für ihre Eingaben</title></head>\n";
print "<body bgcolor="navy" text="white" link="yellow" alink="lime" vlink="yellow"\n";
print "<h1><center>Vielen Dank für ihre Eingaben</center></h1><br>\n";
print "<br><br>\n";
     print "Ihr Name                 = $name <br>\n";
     print "Ihre Mitteilung          = $mitteilung <br>\n";
     print "Ihr Passwort             = $passwort <br>\n";
     print "Ihre E-Mail adresse      = $email <br>\n";
print "<br><br><a href="javascript:history.back()">Zurück</a></body></html>\n";

&start;

open(DATA,">>$datfile");
print DATA "$name§$mitteilung§$passwort§$passwort2§\n";
close(DATA);

sub start
{
   open(INDEX, "<$datfile");
   my @index = <INDEX>;
   close(INDEX);
   foreach (@index)
   {
       my $dzeil =$_;
       chomp($dzeil);

my ($name,$mitteilung,$passwort,$passwort2) = split(/§/,$dzeil);
     print "Ihr Name                 = $name<br>\n";
     print "Ihre Mitteilung          = $mitteilung<br>\n";
     print "Ihr Passwort             = $passwort<br>\n";
     print "Ihre Passwortbestätigung = $passwort2<br>\n";
   }
}