param() mit Semikolon wird nicht eingelesen

16/03/2009 - 20:34 von Martin Asal | Report spam
Hallo Gruppe,

folgendes HTML-Formular:

<form action="foo.pl" method="POST">
<textarea name="bar">
bla; bla
</textarea>
</form>

wird von foo.pl wie folgt eingelesen:

use CGI qw(:cgi);
my $bar = param("bar");

Funktioniert prima. Nun möchte ich aber foo.pl _von einem anderen
Perlscript_ aus ansprechen:

my $url = "foo.pl";
my $val = "bar=bla; bla";
my $ua = new LWP::UserAgent;
my $head = new HTTP::Headers;
my $req = new HTTP::Request("POST", $url, $head, $val);
my $response = $ua->request($req);

Genau hier bekomme ich aber ein Problem: Sobald der Dateninhalt ($val)
ein Semikolon enthàlt, wird er von foo.pl nur bis zu dem Zeichen davor
eingelesen (Über STDIN kommt aber definitiv alles rein).

Was muss ich tun, um den gesamten Dateninhalt einlesen zu können?

danke schon mal vorab
Martin
 

Lesen sie die antworten

#1 Wolf Behrenhoff
17/03/2009 - 00:07 | Warnen spam
Martin Asal schrieb:
Nun möchte ich aber foo.pl _von einem anderen
Perlscript_ aus ansprechen:

my $url = "foo.pl";
my $val = "bar=bla; bla";
my $ua = new LWP::UserAgent;
my $head = new HTTP::Headers;
my $req = new HTTP::Request("POST", $url, $head, $val);
my $response = $ua->request($req);

Genau hier bekomme ich aber ein Problem: Sobald der Dateninhalt ($val)
ein Semikolon enthàlt, wird er von foo.pl nur bis zu dem Zeichen davor
eingelesen (Über STDIN kommt aber definitiv alles rein).

Was muss ich tun, um den gesamten Dateninhalt einlesen zu können?



Richtig kodieren!

my $val = "bar=bla%3B+bla";

Als Aufgabe sei dir überlassen, die richtige Quote-Funktion dafür zu
suchen (perldoc URI::Escape könnte helfen).

- Wolf

Ähnliche fragen