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