Ich habe ein ernstes Problem mit Formularcheck. Vereinfacht sieht das folgendermaßen aus.
# kunden id (=session id, die eigentliche kundennummer errechnet sich aus der Id der Datenbank)
$kid||=$_cookies{kid};
$kid=rand(999999).".".rand(999999) if $kid eq "";
get "KundenId==$kid", "kunden";
$link="cgi-bin/baseportal.pl?kid=$kid";
$emailadr='frank@2pex.de';
$bestellnummer_basis=120000;
get "KundenId==$kid sort=BestellungNr range=-1,1", "bestellungen"; # höchste bestellnr. holen
out "<b>Vielen Dank für Ihr Interesse. <br/>";
put ["Name", $Name, "KundenId", $kid, "BestellungNr", $BestellungNr+1, "Status", "Unbestellt"], "bestellungen";
$inhalt="Sehr geehrte Damen und Herren,\n\nvielen Dank für Ihre Interesse ";
mail $Email,"Ihre Eingabe","$inhalt ";
}
<form action="http://de3.arteurope.de/$link&htx=/arteurope.de/raumfinder/Eifelraum&raum=10&cmd=addOnline" method="post" enctype="multipart/form-data" >
<input type=hidden name="htx=" value="$htx">
<input type=hidden name="cmd=" value="addOnline">
<span class="formrl" >Name</span>
<input type='text' style="width:370px" name="Name=" size="17" value="" ><br/>
<span class="formrl" >EMail</span>
<input type='text' style="width:370px" name="EMail=" size="17" value="" ><br/>
<input type=submit class="button" style="padding:12px";value="Absenden" name="submit">
<input type=reset class="button" value="Zurücksetzen" style="padding:12px" name="reset">
</form>
Das funktioniert alles, aber wenn ich nun mit if-schleifen einen Feldercheck durchführen möchte, kommt gar nichts mehr:
...
if ($cmd=addOnline)
{
my $emsg="";
if(%_put)
{
$emsg.="<p class='red'>Bitte geben Sie Ihren Namen ein! </p>" if $_put{Name} eq "";
if($emsg eq "")
{
out "<b>Vielen Dank für Ihr Interesse. <br/>";
put ["Name", $Name, "KundenId", $kid, "BestellungNr", $BestellungNr+1, "Status", "Unbestellt"], "bestellungen";
$inhalt="Sehr geehrte Damen und Herren,\n\nvielen, vielen, lieben Dank für Ihr Interesse ";
mail $Email,"Ihre Eingabe","$inhalt ";
}
} else
{
out "<b>$emsg</b>";
undef %_put;
}
}
Ich fische schon seit längerem im Trüben. Natürlich habe ich das Forum durch und natürlich habe ich schon etliche Klammerungen und andere Konstellationen ausprobiert, aber ich komme nicht drauf.