AndreasW: Heiteres Sourcecoderaten.

Beitrag lesen

Hi Andreas,

Hi Chris,

sorry hatte ich vergessen :)

drum sag ich es ja.

Code:
#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);

Du benutzt also Module.
Warum benutzt Du nicht strict (use strict;)? Das solltest Du Dir angewöhnen, denn es meldet viele Sachen, die sonst schwer zu finden sind.
Warum benutzt Du nicht das CGI-Modul, wo Du die Parameter ganz einfach zugreifen kannst?

Content-Header

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

Eingaben lesen

read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
     @pairs = split(/&/, $input);
     foreach $pair (@pairs) {
            ($name, $value) = split(/=/, $pair);
            $name =~ tr/+/ /;
            $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
            $value =~ tr/+/ /;
            $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

Ne, die Mühe mache ich mir wirklich nicht, das auch nur verstehen zu wollen. Um die Parameter zu lesen, gibt es im CGI-Modul einen schönen Hash.

[...]
if($FORM{'anrede'} eq "Herr") { $anrede = "Herr"; }
if($FORM{'anrede'} eq "Frau") { $anrede = "Frau"; }
if($FORM{'anrede'} eq "Firma") { $anrede = "Frau"; }

Warum werden Firmen mit Frau angeredet?

[...]
if($FORM{'1'} eq "on") { $interesse = "Erstberatung"; }
if($FORM{'2'} eq "on") { $interesse = "Konzeptentwicklung"; }
if($FORM{'3'} eq "on") { $interesse = "Angebot"; }
if($FORM{'4'} eq "on") { $interesse = "Bannergestaltung"; }

Benutzt Du etwa name="1" in Deinem HTML? Daß name-Attributwerte nicht mit einer Ziffer beginnen dürfen, ist Dir bekannt?

[...]

Du solltest Dir unbedingt das CGI-Modul angucken.
Das kann so vieles ganz einfach, das Du hier mühsam von Hand programmierst.

Gruss Chris

Andreas