Thread Problem mit Schleife
(19 answers)
Opened by anamollo4music at 2013-03-19 20:06 Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 my %beschreibungwerte = map { $_ => $cgi->param($_)//'' } # mach daraus einen Hashwert (notfalls mit "" besetzeten falls undefiniert) grep { /^beschreibung\d+/} # hole alle CGI-Parameter deren Namen mit beschreibung beginnt $cgi->param; # Namen aller CGI-Parameter print qq(<form action="#"><table>\n); my $i=0; while ( my ($idSensoren, $Beschreibung) = $select->fetchrow_array() ) { print qq( <tr> <td>Beschreibung</td> <!-- Tabellenwert zur Verdeutlichung über mehrere Zeilen gestreckt --> <td><input type="text" size="10" name="beschreibung$i" value="$beschreibungwerte{"beschreibung$i"}" ></td> <td><input type="submit" name="werteuebernehmen"></td> </tr> ); $i++; } print qq(</table></form>\n); //EDIT: Was und ob du escapen/filtern musst, können wird jetzt nicht so sagen. Allerdings solltest du alle ans CGI übergebenen Werte darauf prüfen, ob dort gültige Werte drin sind. Ansonsten konnte jemand auch schädliches Javascript oder gar SQL einschleusen, in dem das über die CGI-Parameter abgesandt wird. "Böses" Beispiel: ~ test.pl beschreibung0="<script>alert(42)</script>" werteuebernehmen=1 <script>alert(42)</script>Button wurde geklickt<form action="#"><table> <tr> <td>Beschreibung</td> <td><input type="text" size="10" name="beschreibung0" value="<script>alert(42)</script>"></td> <td><input type="submit" name="werteuebernehmen"></td> </tr> </table></form> Dass dann Javascript ausgeführt wird, versteht sich von selbst. Was bei SQL passieren kann, zeigt http://de.wikipedia.org/wiki/SQL-Injection. Validieren lassen sich Daten aus Formularen z. B. mit Data::FormValidator. Last edited: 2013-03-20 10:10:01 +0100 (CET) |