Somy: Text codieren fuer Uebergabe mit GET-Methode

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

  1. 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

    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;")

  2. 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+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?

    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;
    }

  3. 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.)

  4. 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