R2D21990: Problem mit Formular und Perl

Also )

Das Hir ist jetzt mein formular.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test</title>
</head>
<body bgcolor="##808080">
<h1 align="center">Test</h1>
<form action="/cgi-bin/test.pl" method="post">
<p align="center">ID:<br><input type="text" name="ID" size="25" maxlength="13"></p>
<p align="center">PW:<br><input type="text" name="PW" size="25" maxlength="13"></p>
<p align="center"><input type="submit" value="Absenden"></p>
</form>
</body>
</html>

Und das wirt ja dan weitergegeben nach cgi-bin/test.pl datei auf meinem server

Diese Hir.

use strict;
use CGI::Carp qw(fatalsToBrowser);

read(STDIN, my $Daten, $ENV{'CONTENT_LENGTH'});
my @Formularfelder = split(/&/, $Daten);
my ($Feld, $Name, $Wert);
my %Formular;
foreach $Feld (@Formularfelder) {
(my $Name, my $Wert) = split(/=/, $Feld);
$Wert =~ tr/+/ /;
$Wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$Wert =~ s/</&lt;/g;
$Wert =~ s/>/&gt;/g;
$Formular{$Name} = $Wert;
}
print "Content-type: /text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print "<html><head><title>Your Account dats</title></head>\n";
print "<body><h1>Deine ID & PW</i></h1>\n";
print "<p><b>ID:</b> $Formular{ID}</p>\n";
print "<p><b>PW:</b> $Formular{PW}</p>\n";
print "</body></html>\n";

Und wen ich dan aber auf senden Klick öffnet sich der Download link für die .pl datei

Wie mach ich das jetzt das er da keine download link brinkt sonder das er die eingaben aus dem formular an eine date auf meinem server sendet ??

Danke schon mal )

MFG

  1. Moin,

    Wie mach ich das jetzt das er da keine download link brinkt sonder das er die eingaben aus dem formular an eine date auf meinem server sendet ??

    Dein Web-Server muss dazu überhaupt erstmal wissen, was so ein Perl-Programm eigentlich ist.

    Beim Apache-Webserver z.b. brauchst Du dazu:

    • Module, die dem Webserver ein Verständnis von Perl nahebringen
        (mod_cgi und/oder mod_perl)
    • Diverse Einstellungen im Server, die regeln, ob und unter welchen
        Bedingungen Perl ausgeführt wird.

    Viele Webserver habeb ein eigenes Verzeichnis namens "cgi-bin", in welchem der Webserver Programme erwartet und folglich in diesem verzeichnis auch ausführen kann:
    -> Schau erstmal, ob Du auch so ein Verzeichnis hast, und kopier dein Skript da rein, möglicherweise wars das schon.

    Falls es das nicht ist, musst Du dich wohl oder übel näher mit der Konfiguration deines Webservers beschäftigen.

    Viele Grüße,
    Jörg

    1. ja allso ich hab den apache server
      hab auch die test.pl im ordner
      "cgi-bin" drin wen ich jetzt was ins formular eingebe
      öffnet sich eine neue seite und da steht

      ID: das was ich eingegeben hab ins formular
      PW: "         "          "           "

      also irgen wie geht das ja schon nur wie schickt der das
      jetzt wieder zurück an den server ??

      Danke schon mal :)

      MFG

      1. Hi allso ich hab das jetzt so weit hin bekommen das er jetzt auf dem server eine neue datei erstält aber da nichts rein schreibt

        open(DATEI, ">>test.txt") || die "Datei nicht gefunden";
        my @Zeilen = <ID>;
        close(DATEI);

        was muss ich hir noch anhängen das er das aus dem formular dort rein schreibt??

        Danke schon Mal:))

        MFG

        1. Hallo,

          open(DATEI, ">>test.txt") || die "Datei nicht gefunden";
          my @Zeilen = <ID>;
          close(DATEI);

          Bei dem Teil oben würdest du etwas aus einer Datei einlesen
          my @Zeilen = <ID>;
          , das würde die Zeilen aus einer Datei mit dem Handle "ID" einlesen.

          Du willst aber ja was hineinschreiben, und das geht z.b. so:
          my $variable = "Ein Test";
          print DATEI $variable;
          close(DATEI);

          Ich empfehl Dir aber dringend, dich nochmal eingehend mit Perl zu beschäftigen - in SELFHTML findest Du alles, was Du brauchst.

          Viele Grüße,
          Jörg