I think I know what is happening but still haven't figured out the solution. First I stripped down the code to use CGI without any of our in house packages. What I discovered is that CGI is interpreting the semicolon as a delimiter of the parameter list sent to the web server. So basically every time the webserver received a semicolon from the client its interpreting it as 'Hey I'm a new parameter!'. I added the line:
use CGI qw(-oldstyle_urls);
hoping that it would not see the semicolon as a delimiter, but that didn't work.
Here is a dump of the CGI object:
$VAR1 = bless( {
'strerrortext' => [
'strerror'
],
'strxmltext' => [
'<testproblem>ti'
],
'.parameters' => [
'strxmltext',
'me</testproblem>',
'strerrortext'
],
'me</testproblem>' => [
''
],
'.charset' => 'ISO-8859-1',
'.fieldnames' => {},
'escape' => 1
}, 'CGI' );
The semicolon is located in the tag testproblem:
<testproblem>ti;me</testproblem>
As you can see from the parameter list, CGI is interpreting the text after the semicolon as a parameter. Any other thoughts? |