Martin Schneider: Bei Formularübergabe werden HEX Codes erstellt

Hallo,

ich hab da ein kleines Problemchen, wenn jemand in einem Formular
einen Suchbegriff eingibt der ein / enthält wird der Wert nicht gefunden obwohl er in meiner textdatei vorhanden ist.

ich hab mir dann mal die Variable ausgeben lassen und siehe da, statt / enthält sie %2F !!!

gibt es eine Möglichkeit diese HEXUmrechnung Rückgangig zu machen?

Danke vielmals
Martin

  1. auch hallo

    ich hab mir dann mal die Variable ausgeben lassen und siehe da, statt / enthält sie %2F !!!
    gibt es eine Möglichkeit diese HEXUmrechnung Rückgangig zu machen?

    klar gibts die - alle formulare, die ueber die cgi-schnittstelle geschickt werden, sind so codiert (sprich, die sonderzeichen sind so codiert)

    naehere hinweise

    perldoc pack

    :)

    bzw. auch hier: < /selfhtml/tgcm.htm>

    cua

    n.d.p.

  2. hi!

    ich hab mir dann mal die Variable ausgeben lassen und siehe da, statt / enthält sie %2F !!!
    gibt es eine Möglichkeit diese HEXUmrechnung Rückgangig zu machen?

    Verwende das Modul CGI.pm:
      use CGI;
      $formularwert = CGI::param("formularwert");

    Ansonsten findest du die Lösung in SELFHTML.

    bye, Frank!

  3. Hallo Martin!

    ich hab mir dann mal die Variable ausgeben lassen und siehe da, statt / enthält sie %2F !!!

    Logisch. Das nennt man URL-Encoding, und so werden CGI-Parameter nun mal uebergeben. Der Grund ist, dass manche Zeichen nicht in einer URL vorkommen duerfen, oder zumindest an bestimmten Stellen nicht. Deshalb muss man sie encoden.

    gibt es eine Möglichkeit diese HEXUmrechnung Rückgangig zu machen?

    Ja, ungefaehr 120 verschiedene. Eine findest Du z.B. bei <../../tgcm.htm#a1> (so wie es dort implementiert ist, ist aber nicht besonders ausgereift). Eine andere waere, das Modul CGI.pm zu benutzen, wozu ich allerdings auch nur bedingt raten kann. Wie auch immer, fuer den Anfang geht das schon.

    So long