Bernhard Peissl: Formular, Werteübergabe

Beitrag lesen

Hallo,

die Schleifenvariable kann in dieser verändert werden, und genau das machst Du hier. Bist Du Dir über die Konsequenzen und Effekte im Klaren?

Was chetah sagen will ist, es wäre besser wenn du den Wert des Parameters in einer anderen Variablen speichern würdest:

for ($i=0,$i<5,$i++) {
   $parameter{$i} = param($i);
}

Wenn ich mir deine erste schleife ansehe ...

for ($i=0,$i<5,$i++) {
    $box = "$box" . "<input type="checkbox" name="$i" value="1">";
}

... ist param($i) eigentlich immer eine Zahl! Nun kann ja perl bekanntlich verdammt viel tricksen, aber ob Bezeichner, die mit einer Zahl beginnen, oder überhaupt nur eine Ziffer sind, erlaubt sind, ist sehr zu bezweifeln! Wie rufst du die Variable dann auf? mit $1, $2, ... $5? Die sind ja bekanntlich für andere Zwecke reserviert!

Nimm also entweder ein Feld:
$checkboxes[$i]
oder einen Hash (falls $i nicht nur ziffern sondern auch Buchstaben sind):
$checkboxes{$i}

Ach ja, und natürlich muss "use CGI" irgendwo unter "#!/usr/bin/perl -w" stehen, wenn du die param()-Funktion verwenden willst!

lg Bernhard