Cheatah: programmiertechnik formularauswertung

Beitrag lesen

Hi,

use CGI qw(:standard);

großes Lob! :-)

my $pwd=

Und gleich noch eins!

param("pwd");

Hm, kleiner Dämpfer. Die Doublequotes sind kostenaufwendig, weil der String darin interpoliert wird. Schreibe lieber param('pwd') mit Singlequotes.

check();

Noch'n Dämpfer: &check(); oder auch ✓

#!/usr/bin/perl -w
use strict;

hätten Dich darauf hingewiesen.

»»  if ($person=="abc" && $pwd =~"abc") { ok(); } else { error1(); exit; }

Hoppla, jetzt geht hier aber wirklich einiges durcheinander.

$person=="abc" prüft, ob der Wert der Variablen $person _numerisch_ identisch ist mit dem von 'abc' (auch hier sind Singlequotes angebracht). Wenn in $person (oder 'abc') also nicht zufällig eine Zahl steht, ist dieser Vergleich _immer_ positiv. Schreibe $person eq 'abc'.

$pwd =~ "abc" ist ein Regular Expression Matching. Da Du nicht die Standardsymbole // verwendest (also $pwd =~ /abc/), mußt Du sagen, daß es sich um ein Matching handelt: $pwd =~ m"abc". Ich bin mir aber gar nicht sicher, daß Du wirklich RegExp benutzen willst - auch hier ist vermutlich $pwd eq 'abc' angebracht.

Für &ok; und &error1; gilt das gleiche wie oben für ✓.

so sieht meine check routine aus, jedoch funzt die nur für "abc" richtig, "def" bekommt immer den error, wieso?

Keine Ahnung. Nach meinem Verständnis müßte es schon beim Vorkompilieren einen Fehler geben.

Cheatah