Alain: einen link,url encode senden mit GET für perl script

Hallo,
da ich nun weiss wo das problem liegt bei meinem Formular perlscript,stellt sich
mir die frage,wie man einen browser dazu bringt einen direkten link,url encode zu senden?
Ich kann das leider nicht mit einem submit button bzw. POST methode tun,da der link sich bereits
innerhalb eines formulars befindet.
Das problem stellt sich im Moment nur beim NS4 der den link nicht url encoded sendet.
Könnte da eventuell href=link type="application/x-www-form-urlencoded" helfen?
Grüsse
Alain

  1. Hallo nochmal,
    also ich habs nochmal angesehen und gemerkt dass der NS probleme hat mit
    href links die leerzeichen beinhalten,weil der nur den link sendet bis zu ersten leerzeichen
    bsp. weise wenn der link so "http://www.meinperlscript.com/perl.cgi?dass soll geschickt werden" lautet
    dann sendet netscape 4.xy nur
    "http://www.meinperlscript.com/perl.cgi?dass "
    während bei einer action und post methode er es richtig sendet.
    Wie kann man das problem lösen?
    es nützt auch nichts wenn man z.b. so nen link
    href="$cgiurl?command=delitem&$desc=$itemname" type="application/x-www-form-urlencoded"

    setzt im perlformular
    Gruss
    Alain

    1. Hallo Alain,

      http://www.meinperlscript.com/perl.cgi?dass soll geschickt werden

      Leerzeichen gehören nicht in eine URL, ganz egal welchen Browser Du verwendest.

      So wär´s richtig:
      http://www.meinperlscript.com/perl.cgi?dass+soll+geschickt+werden

      Gruß Sabine

      1. Hallo Sabi,
        danke für die info,aber...

        http://www.meinperlscript.com/perl.cgi?dass soll geschickt werden

        Leerzeichen gehören nicht in eine URL, ganz egal welchen Browser Du verwendest.

        So wär´s richtig:
        http://www.meinperlscript.com/perl.cgi?dass+soll+geschickt+werden

        das problem ist das dies ein spezieller link im formular ist der einen url-gecodeten link benötigt,da das script einen urlcode link erwartet.
        Also das gegenteil von
        $key =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
        $val =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;

        ich habe eine variablen-namen und möchte die url-coden nicht encoden :)
        geht das irgendwie mit dem CGI modul vielleicht mit $cgi->query?

        Grüsse
        Alain

      2. Hallo,

        http://www.meinperlscript.com/perl.cgi?dass soll geschickt werden

        Leerzeichen gehören nicht in eine URL, ganz egal welchen Browser Du verwendest.

        So wär´s richtig:
        http://www.meinperlscript.com/perl.cgi?dass+soll+geschickt+werden

        muss mich nochmal korrigieren Sabine,Dein Hinweis war Gold wert ->*knuddell* ;-)
        Du hattest natürlich recht mit den leerzeichen und ich hatte nen denkfehler bez. url recode gemacht.
        Ich habe das natürlich jetzt so gelöst dass ich genau das gemacht habe,was perl nach dem übermitteln tut (um das formular zu verarbeiten) -> + ersetzten durch leerzeichen $urlitem =~ tr/+/ /;und andere dinge...da hab ich einfach dasselbige getan was perl tut
        bsp.:

        my $urlitem = "dass soll geschickt werden";

        $urlitem =~ tr/ /+/;#ersetzte leerzeichen durch +

        #was aus $urlitem
        "dass+soll+geschickt+werden"
        #macht.Und standart gepackt

        $urlitem =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

        security hole plugged up.

        $urlitem =~ s/<!--(.|[^>]|\n)*-->//g;

        damit hab ich dann ein fertiggestellten href link perlscript-compatibel gemacht....so dass perl diese daten richtig erkennt und auch ausführt und funktioniert jetzt mit allen browser,die ich habe -> einwandfrei.
        Komisch,dass von sowas hier nie die rede war,musste auch in selfhtml stunden suchen bis ich mal auf diesen hinweis gekommen bin,jedoch nicht darauf,dass man leerzeichen durch + ersetzt,es stand lediglich wie das perl auf geschickte formular daten reagiert und sie bearbeitet.Wäre vielleicht mal ne idee für nen umgekehrten hinweis.
        Möglicherweise hab ich das übersehen,die suche über self... hat jedenfalls nix gebracht nur über php.
        Besten dank nochma Sabine und gute Nacht
        Grüsse
        Alain

        1. Hallo,
          nach unfangreicher recherche hab nun endlich ein script gefunden,
          welches meine lösung voll erfüllt.

          sub urlencode {
          my($esc) = @_;
          $esc =~ s/^\s+|\s+$//gs;
          $esc =~ s/([^a-zA-Z0-9_-.])/uc sprintf("%%%02x",ord($1))/eg;
          $esc =~ s/ /+/g;
          $esc =~ s/%20/+/g;
          return $esc;
          }

          Falls jemand mal sowas braucht für perl...
          Grüsse
          Alain

          P.S.Den code hab ich von einem perlshop script
          http://www.1-hit.com/online-payment-systems/free-paypal-shopping-cart-script-perl.htm