Text codieren fuer Uebergabe mit GET-Methode
Somy
- cgi
0 K@rl0 Andreas Flückiger0 Michael Schröpl0 Somy
Hallo,
Ich habe ein Skript geschrieben, mit dem ich (unter anderem) Text aus einer Liste auswaehlen kann. Nun moechte ich, dass das Skript einen Link generiert, mit dem der ausgewaehlte Text uebergeben wird.
Das Resultat sieht dann so aus:
http://www.test.com/script?text=Dies+ist+der+Text
Da der Text nicht aus einem Formular stammt, muss ich wohl oder uebel die Codierung selbst uebernehmen. Bisher herausgefunden habe ich nur, dass diese Codierung RFC 1552 heisst.
Kann mir jemand sagen, wie ich das anstellen soll?
Vielen Dank!
Somy
meine EMail: somy@gmx.ch
Hallo,
Ich habe ein Skript geschrieben, mit dem ich (unter anderem) Text aus einer Liste auswaehlen kann. Nun moechte ich, dass das Skript einen Link generiert, mit dem der ausgewaehlte Text uebergeben wird.
Das Resultat sieht dann so aus:
http://www.test.com/script?text=Dies+ist+der+TextDa der Text nicht aus einem Formular stammt, muss ich wohl oder uebel die Codierung selbst uebernehmen. Bisher herausgefunden habe ich nur, dass diese Codierung RFC 1552 heisst.
Kann mir jemand sagen, wie ich das anstellen soll?
Vielen Dank!
Somymeine EMail: somy@gmx.ch
mit der Hand am Arm: alle nicht-Buchstaben/Zahlen mit dem jeweiligen Hex-Code (siehe ASCII-Tabelle) und vorgestelltem "%" codieren. Beispiel: "%3d" ist das Gleichheitszeichen. (Hinweis: in Deinem Perl-Code entpackst Du ja dann mit sowas wie "$val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;")
Hallo Somy
Ich habe ein Skript geschrieben, mit dem ich (unter anderem) Text aus einer Liste auswaehlen kann. Nun moechte ich, dass das Skript einen Link generiert, mit dem der ausgewaehlte Text uebergeben wird.
Das Resultat sieht dann so aus:
http://www.test.com/script?text=Dies+ist+der+TextDa der Text nicht aus einem Formular stammt, muss ich wohl oder uebel die Codierung selbst uebernehmen. Bisher herausgefunden habe ich nur, dass diese Codierung RFC 1552 heisst.
Kann mir jemand sagen, wie ich das anstellen soll?
Du kannst die untenstehende Subroutine verwenden, um den Query-String zu codieren.
Gruss
Andreas
--------------------
$query = &query($name[0],$value[0],$name[1],$value[1],$name[2],$value[2]);
sub query
{
my $query;
while(@_)
{
my $name = shift(@_);
my $value = shift(@_);
$name =~ s/([^ a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg;
$name =~ tr/ /+/;
$value =~ s/([^ a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg;
$value =~ tr/ /+/;
$query .= "$name=$value&";
}
chop($query);
return $query;
}
Da der Text nicht aus einem Formular stammt, muss ich wohl oder uebel die Codierung selbst uebernehmen. Bisher herausgefunden habe ich nur, dass diese Codierung RFC 1552 heisst.
Kann mir jemand sagen, wie ich das anstellen soll?
In welcher Sprache ist denn Dein Skript geschrieben? Auf welcher Plattform soll es laufen?
(Dem URL kann ich beides nicht ansehen.)
Hallo,
Entschuldigt bitte meine spaete Antwort.
Danke fuer die Tips und speziell fuer die Subroutine (Andreas). Ich glaube, so wird es funktionieren.
Gruss,
Somy
meine EMail: somy@gmx.ch