Thread Lesen Parameter mit CGI (Textfeld, prüfen auf \r \n) (15 answers)
Opened by Silja at 2011-04-28 08:39

GwenDragon
 2011-04-28 09:30
#148042 #148042
User since
2005-01-17
14170 articles
Admin1
[Homepage]
user image
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)
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

View full thread Lesen Parameter mit CGI (Textfeld, prüfen auf \r \n)