http://www.perlmonks.org?node_id=1081098


in reply to Re^3: [Perl-CGI] Print non-interpolated string
in thread [Perl-CGI] Print non-interpolated string

Thanks, I managed to fix it.
The documentation is... let's say not really clear on how to use it.
It says: $escaped_string = escapeHTML("unescaped string");

But for manual use it's $escaped_string = $cgi->escapeHTML("unescaped string");
Unfortunately this is not mentioned in the documentation but Google found the Syntax for me. This method is not importet by using 'use CGI;'. It's a method on the $cgi-Object. :)

And you're right: This method is used automatcally only for forms created using CGI.pm and not on my self-written HTML-code.
  • Comment on Re^4: [Perl-CGI] Print non-interpolated string

Replies are listed 'Best First'.
Re^5: [Perl-CGI] Print non-interpolated string
by mr_mischief (Monsignor) on Apr 04, 2014 at 16:18 UTC

    CGI has two operating modes: OO and procedural. You have to import the procedural portions to get that syntax.

    Also, it's not Perl that's evaluating your code as to Perl it's just text data until you use something like eval $text. Your browser, on the other hand, feels free to interpret HTML as HTML in an HTML document type. Look into both escaping characters (as you have done), and into additional issues like HTML entities in general and <pre></pre> tags. While you're at it, look into SQL injection and XSS.

      Thanks, my problem came up together with SQL injections basically. Not that I've been hit by that but I noticed the possibility.
      Regarding XSS I think that I'm kinda safe, since I considered that while programming but a having a deeper look won't hurt. :)
Re^5: [Perl-CGI] Print non-interpolated string
by Anonymous Monk on Apr 05, 2014 at 08:06 UTC
      OK, reading it whole explains a lot. :)