Andreas0063: Formular

hallo zusammen

zuerst mal, bin totaler anfänger in dem gebiet hier (script, perl und cgi).
habe nun ein testformular mit html kreiert.
sambar server funktioniert. ich kann das formular mit http://.... aufrufen.
den cgi script habe ich in den ordner cgi-bin gestellt.
im formular habe ich <form action="/cgi-bin/comments.pl" method="post"> eingetragen.
in der config.ini bei webserver pfad zu perl eingestellt Perl "Executable = c:/sambar/perl".
wenn ich nun auf den knopf absenden drücke, wir im browser nur die bekannte seite HTTP 500 - Internal server error angezeit und nicht der script ausgeführt.

was mache ich noch falsch?
danke für eure hilfe!

  1. Hi,

    was mache ich noch falsch?

    Du schaust nicht ins Error-Log des Servers.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Du schaust nicht ins Error-Log des Servers.

      habe im error-log nachgeschaut. die meldung lautet:

      [2004-08-19 14:00:35] ERROR: Failure executing CGI process: C:/sambar/c:/sambar/perl/perl.exe C:\sambar\cgi-bin\comments.pl

      gebe ich irgendwo einen pfad zuviel an?

      1. hi,

        habe im error-log nachgeschaut. die meldung lautet:

        [2004-08-19 14:00:35] ERROR: Failure executing CGI process: C:/sambar/c:/sambar/perl/perl.exe C:\sambar\cgi-bin\comments.pl

        Möglicherweise...

        am Besten Du liest hier mal nach:
        http://www.sambar.com/syshelp/cgi.htm

        Gruss, Rolf

        1. Möglicherweise...

          »»
          habe alle möglichenkeiten den pfade anzugeben versucht. auch mit der schreibweise so \ und / so. error-log meldet das selbe:

          [2004-08-19 15:06:36] ERROR: Failure executing CGI process: C:/sambar/c:/sambar/perl/perl.exe C:\sambar\cgi-bin\comments.pl

          keine ahnung was ich noch versuchen könnte.

          1. [2004-08-19 15:06:36] ERROR: Failure executing CGI process: C:/sambar/c:/sambar/perl/perl.exe C:\sambar\cgi-bin\comments.pl

            keine ahnung was ich noch versuchen könnte.

            Ich vermute mla das deine Server Konfiguration nicht richtig ist.

            Struppi.

            1. habe noch ein paar einstellungen vorgeenommen und den server restartet. unglaublich, habe habe eine neue fehlermeldung:

              [2004-08-19 16:46:08] WARN:  CGI process sent no content: C:/sambar/cgi-bin/comments.pl

              sagt jemandem diese meldung etwas und kann er mir weiterhelfen?

              1. [2004-08-19 16:46:08] WARN:  CGI process sent no content: C:/sambar/cgi-bin/comments.pl

                sagt jemandem diese meldung etwas und kann er mir weiterhelfen?

                Kan es sein, dass dein Skript keinen HTTP Header schickt?

                Struppi.

                1. Kan es sein, dass dein Skript keinen HTTP Header schickt?

                  »»
                  Das wäre mein Script:

                  #!c:\perl\bin\perl.exe

                  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>CGI-Feedback</title></head>\n";
                  print "<body><h1>CGI-Feedback vom Programm <i>comments.pl</i></h1>\n";
                  print "<p><b>Name:</b> $Formular{AnwenderName}</p>\n";
                  print "<p><b>Kommentartext:</b> $Formular{Kommentartext}</p>\n";
                  print "</body></html>\n";

                  1. use Mosche;

                    #!c:\perl\bin\perl.exe

                    #!c:\perl\bin\perl.exe -w

                    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;
                     }

                    Wenn du schon CGI::Carp verwendest, warum dann nicht auch CGI? Dann kannst den gesamten %Formular-Kram in die Tonne kloppen.

                    use CGI;
                       my $cgi = new CGI;

                    print "Content-type: text/html\n\n";

                    print $cgi->header();

                    print "<p><b>Name:</b> $Formular{AnwenderName}</p>\n";

                    print "<p><b>Name:</b>", $cgi->param('AnwenderName'), "</p>\n";

                    print "<p><b>Kommentartext:</b> $Formular{Kommentartext}</p>\n";

                    print "<p><b>Kommentartext:</b>", $cgi->param('Kommentartext'), "</p>\n";

                    use Tschoe qw(Matti);

                    --
                      Anyone who quotes me in their sig is an idiot. -- Rusty Russell.