Shawn H Corey wrote:
> Bruce Ferrell wrote:
>> Somehow my data is being transformed.
>>
>> The CGI code is:
>>
>> #/bin/perl
>>
>> use CGI::Util qw( escape unescape make_attributes );
>> use CGI;
>> use CGI qw( escapeHTML );
>>
>> my $q                        = new CGI;
>>
>> my $data             = $q->param( 'POSTDATA' );
>>
>> print STDERR $data ."\n";
>>
>>
>> The output is:
>>
>> <?xml version="1.0"?><event>
>>  <type>ADD</type>
>>  <message>
>>  <custID>6ec973aa3f7a96e43f86b8d2aea0585ba3096c28</custID>
>> <custANI>5551313</custANI>
>> <msgtype>SMS</msgtype>
>> <SMSTarget>15551212</SMSTarget>
>>  <SMSMessage>Test message sent from script %%DNAME%% %\xdaTE%% </SMSMessage>
>> <status>ALERT</status>
>>  </message>
>>  </event>
>>
>> And the input is:
>>
>> POSTDATA=<?xml version="1.0"?><event>
>> <type>ADD</type>
>> <message>
>> <custID>6ec973aa3f7a96e43f86b8d2aea0585ba3096c28</custID>
>> <custANI>5551313</custANI>
>> <msgtype>SMS</msgtype>
>> <SMSTarget>15551212</SMSTarget>
>> <SMSMessage>Test message sent from script %%DNAME%% %%DATE%% </SMSMessage>
>> <status>ALERT</status>
>> </message>
>> </event>
>>
>> any thoughts on why %%DATE%% is being transformed into %\xdaTE%% ?
>>
>>
> 
> Yes.
> 
> Oh, you also want to know why.  %DA is a valid two-hexadecimal number.
> HTTP will convert it into a single character.  However, it shouldn't
> come out as \xda but as the character.
> 
> Everything else that follows a % is not a valid two-hexadecimal number.
> 
> To get around it, convert all the % into %25
> 
> %25%25DNAME%25%25 %25%25DATE%25%25
> 
> In fact, it's probably best to convert all non-alphanumerics into their
> corresponding two-hexadecimal numbers, including spaces and newlines.
> 
> 

Thank you Shawn!

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to