Thread Lesen Parameter mit CGI (Textfeld, prüfen auf \r \n)
(15 answers)
Opened by Silja at 2011-04-28 08:39
Du kannst das gern mal mit folgendem CGI testen:
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 24 25 26 27 #!/usr/bin/perl use strict; use warnings; use CGI; my $cgi = CGI->new; my $p = $cgi->param('test'); print $cgi->header, $cgi->start_html; if (defined $p && length $p) { print $cgi->p( qq/test ist: "$p"/, $cgi->br, 'das ist in Hex: ', unpack("H*", $p) ); } else { print $cgi->start_form, 'test: ', $cgi->textfield(-name => 'test'), $cgi->submit, $cgi->end_form; } print $cgi->end_html; Rufe das CGI mal mit folgendem angehäntem Parameter ?test=123%00%0D%0A (das ist 123 NULL RETURN NEWLINE) auf, dann siehst du, dass param nichts in Leerzeichen umwandelt. Zeigt doch mal was von deinem Code, dann sehen wir vielleicht wo der Fehler ist. //EDIT: Wenn ich in einem Texteditor folgende Zeichenfolge 123 RETURN NEWLINE erzeuge, in die Zwischenablage kopiere und dann in das Textfeld einfüge, erscheinen NEWLINE und RETURN als Leerzeichen, zu erkennen am Hex 20. Da wird vielleicht der Browser die Zeichen umwandeln oder die Zwischenablage konvertiert irgendwas; ich weiß es nicht. Last edited: 2011-04-28 09:39:24 +0200 (CEST) |