Hallo,
ich möchte das Problem bei mir nachstellen. Baue mir einen Testcase: verringere den Umfang deines Programms aufs Nötigste, das das Fehlverhalten noch aufzeigt, und poste den Quellcode sowie die Rahmenbedingungen.
Der minimale Code, der bei mir ebenfalls das nicht korrekte Verhalten zeigt.
#! /usr/bin/perl -w
use strict;
use DBI;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $cgi = new CGI;
## Ausgabe der HTML-Seite starten ##################################
print $cgi->header(),
$cgi->start_html(-title=>"Erweiterte Suche",
-style=>{-src=>['stylesheets/default.css'],
-media =>'screen'}),
$cgi->start_div({-id=>"container"}),
$cgi->start_div({-id=>"liste"});
### Auswertung der uebergebenden Parameter ########################
if(defined $cgi->param('searchAdv')){
## Testausgabe - Werte werden noch korrekt ausgegeben
my @Feldnamen = $cgi->param();
foreach my $Feld (@Feldnamen) {
print $cgi->b('Feldname: '), $Feld,
$cgi->b(', Inhalt: '),
$cgi->param($Feld), "<br>"; }
## Aufruf der Funktion zum Auswerten der Daten
&advsearch;
}else {
## Anzeige der Suchseite
&advsearchstart;
};
### Subroutine zum Anzeigen der Suchmaske
sub advsearchstart
{
## Ueberschrift
print $cgi->h1("Erweiterte Suche");
print $cgi->start_form( -method=>'POST',
-action=>$LINK),
$cgi->checkbox( -name=>'dateCheck',
-label=>'Datum'),
$cgi->br,
$cgi->hr,
$cgi->submit(-value=>'Suchen',
-name=>'searchAdv'),
$cgi->end_form(),
$cgi->end_div();
};
sub advsearch {
## Ueberschrift
print $cgi->h1("Suchergebnis");
## Testausgabe - bleibt leer
my @Feldnamen = $cgi->param();
foreach my $Feld (@Feldnamen) {
print $cgi->b('Feldname: '),
$Feld,
$cgi->b(', Inhalt: '),
$cgi->param($Feld), "<br>"; }
## Ueberpruefen, ob etwas ausgewaehlt
if ($cgi->param()) {
print $cgi->p("ja");
}else{
## Wenn nichts ausgewaehlt wurde
print $cgi->p("keine Auswahl getroffen");
}
# Ende der Seite
print $cgi->end_div();
};## Ende Funktion advsearch
## Seite zumachen
print $cgi->div({-id=>"footer"}, "ENDE"),
$cgi->end_div(),
$cgi->end_html();
##EOF##
Hm ... anstatt eine Subroutine aufzurufen, könnte ich ja auch gleich oben in der if-Bedingung die Formularwerte auswerten. Da is ja noch alles da.
Gruß,
Leeloo
--
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra