+ in GET param

View: New views
17 Messages — Rating Filter:   Alert me  

+ in GET param

by Gavin Henry-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dear list,

I have created a url via uri_for that produces (hashref passed in):

     http://myserver.com/blah/?username=first.last%2Bme%40gmail.com

so the + is escaped into %2B. Fine.

This param comes in via:

$c->stash->{username} = $c->req->param('username');

A warn on $c->req->param('username');

shows (as does the debug console via _server.pl and via Apache):

     first.last me@...

as a + sign is a shortcut for space in a URL. The above is a valid e-mail
address which I need to cater for.

Any ideas on how to get the first.last+me@... into Catalyst without
the + getting turned into a space?

If it's not possible I can do a redesign of this part of the site.

Thanks,

Gavin.

_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Will Hawes-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 11/09/2007, Gavin Henry <ghenry@...> wrote:

> Dear list,
>
> I have created a url via uri_for that produces (hashref passed in):
>
>      http://myserver.com/blah/?username=first.last%2Bme%40gmail.com
>
> so the + is escaped into %2B. Fine.
>
> This param comes in via:
>
> $c->stash->{username} = $c->req->param('username');
>
> A warn on $c->req->param('username');
>
> shows (as does the debug console via _server.pl and via Apache):
>
>      first.last me@...
>
> as a + sign is a shortcut for space in a URL. The above is a valid e-mail
> address which I need to cater for.
>
> Any ideas on how to get the first.last+me@... into Catalyst without
> the + getting turned into a space?
>
> If it's not possible I can do a redesign of this part of the site.
>
> Thanks,
>
> Gavin.

If I understand you correctly, this might be useful:

http://search.cpan.org/dist/URI/URI/Escape.pm

_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Gavin Henry-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

<quote who="Will Hawes">

> On 11/09/2007, Gavin Henry <ghenry@...> wrote:
>> Dear list,
>>
>> I have created a url via uri_for that produces (hashref passed in):
>>
>>      http://myserver.com/blah/?username=first.last%2Bme%40gmail.com
>>
>> so the + is escaped into %2B. Fine.
>>
>> This param comes in via:
>>
>> $c->stash->{username} = $c->req->param('username');
>>
>> A warn on $c->req->param('username');
>>
>> shows (as does the debug console via _server.pl and via Apache):
>>
>>      first.last me@...
>>
>> as a + sign is a shortcut for space in a URL. The above is a valid
>> e-mail
>> address which I need to cater for.
>>
>> Any ideas on how to get the first.last+me@... into Catalyst
>> without
>> the + getting turned into a space?
>>
>> If it's not possible I can do a redesign of this part of the site.
>>
>> Thanks,
>>
>> Gavin.
>
> If I understand you correctly, this might be useful:
>
> http://search.cpan.org/dist/URI/URI/Escape.pm
>

That's what uri_for is already doing (I forgot to mention I'd checked
already).

uri_for:

    http://myserver.com/blah/?username=first.last%2Bme%40gmail.com

URI::Escape:

perl -MURI::Escape -e "print uri_escape('first.last+me@...')";

    first.last%2Bme%40gmail.com

Same either way.

Thanks though.

_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Wade.Stuart :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


>
> That's what uri_for is already doing (I forgot to mention I'd checked
> already).
>
> uri_for:
>
>     http://myserver.com/blah/?username=first.last%2Bme%40gmail.com
>
> URI::Escape:
>
> perl -MURI::Escape -e "print uri_escape('first.last+me@...')";
>
>     first.last%2Bme%40gmail.com
>
> Same either way.


perl -MURI::Escape -e "print uri_unescape('first.last%2Bme%40gmail.com');"
first.last+me@...

Looks like it is a problem with the debug printing code or the some
unescape code somewhere.  That is the proper escape for +.


_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Ash Berlin-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Wade.Stuart@... wrote:

>> That's what uri_for is already doing (I forgot to mention I'd checked
>> already).
>>
>> uri_for:
>>
>>     http://myserver.com/blah/?username=first.last%2Bme%40gmail.com
>>
>> URI::Escape:
>>
>> perl -MURI::Escape -e "print uri_escape('first.last+me@...')";
>>
>>     first.last%2Bme%40gmail.com
>>
>> Same either way.
>
>
> perl -MURI::Escape -e "print uri_unescape('first.last%2Bme%40gmail.com');"
> first.last+me@...
>
> Looks like it is a problem with the debug printing code or the some
> unescape code somewhere.  That is the proper escape for +.

Yes. and the problem is Catalyst is unescaping it to early, so its
seeing it as a literal +, which then gets converted to a space according
to the HTTP RFC. It shouldn't. There is a bug in the catalyst param
handling somewhere I suspect.

_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Gavin Henry-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

<quote who="Wade.Stuart@...">

>
>>
>> That's what uri_for is already doing (I forgot to mention I'd checked
>> already).
>>
>> uri_for:
>>
>>     http://myserver.com/blah/?username=first.last%2Bme%40gmail.com
>>
>> URI::Escape:
>>
>> perl -MURI::Escape -e "print uri_escape('first.last+me@...')";
>>
>>     first.last%2Bme%40gmail.com
>>
>> Same either way.
>
>
> perl -MURI::Escape -e "print uri_unescape('first.last%2Bme%40gmail.com');"
> first.last+me@...

Yeah, confirmed above.

>
> Looks like it is a problem with the debug printing code or the some
> unescape code somewhere.  That is the proper escape for +.

The problem is $c->req->param('username') is already decoded when I get
it. I stash the value then pass it to a dbic search, which by that time
already has a space in it.

I can't do anything other than pass it to uri_for, which encodes it and
get the value back in via $c->req, which has already turned the + into a
space.

What can I do *before* $c->req->param('username')  ???

>
>
> _______________________________________________
> List: Catalyst@...
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst@.../
> Dev site: http://dev.catalyst.perl.org/
>


_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Gavin Henry-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>> Looks like it is a problem with the debug printing code or the some
>> unescape code somewhere.  That is the proper escape for +.
>
> Yes. and the problem is Catalyst is unescaping it to early, so its
> seeing it as a literal +, which then gets converted to a space according
> to the HTTP RFC. It shouldn't. There is a bug in the catalyst param
> handling somewhere I suspect.
>

Ok, so it's a bug in Catalyst. I'll dig in Catalyst::Request which in
turn uses URI::QueryParam and URI. Maybe something there.

Gavin.

_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Jonathan Rockway :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Gavin Henry wrote:
> <quote who="Wade.Stuart@...">
>  
>>> That's what uri_for is already doing (I forgot to mention I'd checked
>>> already).
>>>
>>> uri_for:
>>>
>>>     http://myserver.com/blah/?username=first.last%2Bme%40gmail.com

I haven't looked into this at all, but try using a chained action
instead.  I think that bypasses unescaping for whatever reason, and that
may be exactly what you need here.  If this breaks horribly in the
future, though, don't blame me.  I consider the chained behavior a bug
(but I'm waiting for mst to tell me why it isn't).

Regards,
Jonathan Rockway



_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

signature.asc (380 bytes) Download Attachment

Re: + in GET param

by Tatsuhiko Miyagawa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I tested but couldn't reproduce. So I wouldn't say this is a Cat bug.

% catalyst.pl TestApp
% cd TestApp
% vi lib/TestApp/Controller/Root.pm

sub default : Private {
    my ( $self, $c ) = @_;

    # Hello World
    $c->response->body("Hello " . ($c->req->param('username') || "(default)"));
}

% ./script/testapp_server.pl

Access http://localhost:3000/?username=first.last%2Bme%40gmail.com

It prints out "Hello first.last+me@...".

[info] *** Request 1 (0.167/s) [1194] [Tue Sep 11 19:54:11 2007] ***
[debug] Query Parameters are:
.-------------------------------------+--------------------------------------.
| Parameter                           | Value                                |
+-------------------------------------+--------------------------------------+
| username                            | first.last+me@...              |
'-------------------------------------+--------------------------------------'
[debug] "GET" request for "/" from "192.168.70.1"
[info] Request took 0.068512s (14.596/s)
.----------------------------------------------------------------+-----------.
| Action                                                         | Time      |
+----------------------------------------------------------------+-----------+
| /default                                                       | 0.000100s |
| /end                                                           | 0.000818s |
'----------------------------------------------------------------+-----------'

Check Catalyst::Engine versions or whatever plugins you use that
messes something with request parameters?


On 9/11/07, Gavin Henry <ghenry@...> wrote:

> >> Looks like it is a problem with the debug printing code or the some
> >> unescape code somewhere.  That is the proper escape for +.
> >
> > Yes. and the problem is Catalyst is unescaping it to early, so its
> > seeing it as a literal +, which then gets converted to a space according
> > to the HTTP RFC. It shouldn't. There is a bug in the catalyst param
> > handling somewhere I suspect.
> >
>
> Ok, so it's a bug in Catalyst. I'll dig in Catalyst::Request which in
> turn uses URI::QueryParam and URI. Maybe something there.
>
> Gavin.
>
> _______________________________________________
> List: Catalyst@...
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@.../
> Dev site: http://dev.catalyst.perl.org/
>


--
Tatsuhiko Miyagawa

_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Matt Rosin-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I wonder if this is similar to something bug I saw a few months ago.
I tried to pass a GET url into a TT2 field but the question mark in the url kept getting url-encoded to %3F. I was wondering if it was a Unicode problem, but it may have been wrong url_for syntax.
 
Here is a snippet from the old code before I solved the problem (the chr didn't work IIRC).
 
my $qm = chr(63); # my terminal can't print a question mark in utf8 it makes a hex code %3F!
  $c->stash->{prevpageurl} = $c->uri_for("/admin/admin_portal_transactions_list".$qm."page=$prevpage&collapsed=$collapsed");
 
 
IIRC I was unable to solve the problem using the stash, and possibly I also tried uri_for then.
Finally I solved it by converting the function to pass parameters as virtual folders in the url path.
 
However yes I just tried what Miyagawa-san had and did it with a TT template too. It works fine with url_for.
 
Matt R.

_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Gavin Henry-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Matt Rosin wrote:

> I wonder if this is similar to something bug I saw a few months ago.
> I tried to pass a GET url into a TT2 field but the question mark in the
> url kept getting url-encoded to %3F. I was wondering if it was a Unicode
> problem, but it may have been wrong url_for syntax.
>  
> Here is a snippet from the old code before I solved the problem (the chr
> didn't work IIRC).
>  
> my $qm = chr(63); # my terminal can't print a question mark in utf8 it
> makes a hex code %3F!
>   $c->stash->{prevpageurl} =
> $c->uri_for("/admin/admin_portal_transactions_list".$qm."page=$prevpage&collapsed=$collapsed");
>
>  
>  
> IIRC I was unable to solve the problem using the stash, and possibly I
> also tried uri_for then.
> Finally I solved it by converting the function to pass parameters as
> virtual folders in the url path.
>  
> However yes I just tried what Miyagawa-san had and did it with a TT
> template too. It works fine with url_for.
>  

Weird. I'll try here to.

I'm actually generating the url in TT, so maybe I'll try moving it into
my controller:

[% FOREACH subscriber IN sublist %]
 <tr>
  <td>[% subscriber.detail.subid %]</td>
  <td>[% subscriber.detail.firstname %]</td>
  <td>[% subscriber.detail.lastname %]</td>

  [% user = { username => subscriber.detail.email1 } %]

  <td><a href="
[% c.uri_for('/admin/usage/edit', subscriber.detail.subid, user); %]"
title="Click for more information">[% subscriber.detail.email1 %]
</a></td>
  <td>[% subscriber.detail.orgname %]</td>
  <td>[% subscriber.status %]</td>
  <td>[% subscriber.detail.tariff_name %]</td>
  <td>[% subscriber.detail.dateend.strftime('%a %d %b %Y'); %]</td>
</tr>
[% END %]



_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Gavin Henry-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Tatsuhiko Miyagawa wrote:

> I tested but couldn't reproduce. So I wouldn't say this is a Cat bug.
>
> % catalyst.pl TestApp
> % cd TestApp
> % vi lib/TestApp/Controller/Root.pm
>
> sub default : Private {
>     my ( $self, $c ) = @_;
>
>     # Hello World
>     $c->response->body("Hello " . ($c->req->param('username') || "(default)"));
> }
>
> % ./script/testapp_server.pl
>
> Access http://localhost:3000/?username=first.last%2Bme%40gmail.com
>
> It prints out "Hello first.last+me@...".
>
> [info] *** Request 1 (0.167/s) [1194] [Tue Sep 11 19:54:11 2007] ***
> [debug] Query Parameters are:
> .-------------------------------------+--------------------------------------.
> | Parameter                           | Value                                |
> +-------------------------------------+--------------------------------------+
> | username                            | first.last+me@...              |
> '-------------------------------------+--------------------------------------'
> [debug] "GET" request for "/" from "192.168.70.1"
> [info] Request took 0.068512s (14.596/s)
> .----------------------------------------------------------------+-----------.
> | Action                                                         | Time      |
> +----------------------------------------------------------------+-----------+
> | /default                                                       | 0.000100s |
> | /end                                                           | 0.000818s |
> '----------------------------------------------------------------+-----------'
>
> Check Catalyst::Engine versions or whatever plugins you use that
> messes something with request parameters?
>
>

Very strange.

I've just put this in Root.pm

 85 sub param : Local {
 86     my ( $self, $c ) = @_;
 87
 88     # Hello World
 89     $c->response->body(
 90         "Hello " . ( $c->req->param('username') || "(default)" ) );
 91 }

and gone to:

http://suretec:3000/param/?username=first.last%2Bme%40gmail.com

And the same result as before:

Hello first.last me@...

[info] FTM powered by Catalyst 5.7010
You can connect to your server at http://suretec:3000
[info] *** Request 1 (0.143/s) [5885] [Wed Sep 12 11:05:15 2007] ***
[debug] Query Parameters are:
.---------------------------------+------------------------------.
| Parameter                           | Value                    |
+---------------------------------+------------------------------+
| username                            | first.last me@...  |
'---------------------------------+------------------------------'
[debug] "GET" request for "param/" from "127.0.0.1"
[debug] Path is "param"
[info] Request took 0.091166s (10.969/s)
.----------------------------------------------------+-----------.
| Action                                             | Time      |
+----------------------------------------------------+-----------+
| /begin                                             | 0.000203s |
| /param                                             | 0.000136s |
| /end                                               | 0.000285s |
'----------------------------------------------------+-----------'



_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Jonathan Rockway :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Gavin Henry wrote:
> Tatsuhiko Miyagawa wrote:
>  
>> I tested but couldn't reproduce. So I wouldn't say this is a Cat bug.
> And the same result as before:
>
> Hello first.last me@...
>  

Would you guys be so kind as to run scandeps.pl (from Module::ScanDeps
on CPAN) and report the versions of everything along the prereq chain?

FWIW, I have the same results as miyagawa and my versions look like:

$ scandeps.pl -x script/testapp_test.pl

'CGI::Simple::Cookie'               => '1.103',
'CGI::Simple::Util'                 => '1.103',
'Catalyst'                          => '5.7010',
'Catalyst::Action'                  => 'undef',
'Catalyst::ActionContainer'         => 'undef',
'Catalyst::AttrContainer'           => 'undef',
'Catalyst::Component'               => 'undef',
'Catalyst::Controller'              => 'undef',
'Catalyst::Devel'                   => '1.03',
'Catalyst::DispatchType'            => 'undef',
'Catalyst::DispatchType::Default'   => 'undef',
'Catalyst::DispatchType::Index'     => 'undef',
'Catalyst::DispatchType::Path'      => 'undef',
'Catalyst::DispatchType::Regex'     => 'undef',
'Catalyst::Dispatcher'              => 'undef',
'Catalyst::Engine'                  => 'undef',
'Catalyst::Engine::CGI'             => 'undef',
'Catalyst::Log'                     => 'undef',
'Catalyst::Request'                 => 'undef',
'Catalyst::Request::Upload'         => 'undef',
'Catalyst::Response'                => 'undef',
'Class::Data::Inheritable'          => '0.06',
'Data::Dump'                        => '1.08',
'Devel::InnerPackage'               => '0.3',
'File::Copy'                        => '2.09',
'File::Find'                        => '1.10',
'File::Spec::Functions'             => '1.3',
'File::Temp'                        => '0.18',
'HTTP::Body'                        => '0.9',
'HTTP::Body::MultiPart'             => 'undef',
'HTTP::Body::OctetStream'           => 'undef',
'HTTP::Body::UrlEncoded'            => 'undef',
'Module::Pluggable::Object'         => '3.6',
'NEXT'                              => '0.60',
'SelfLoader'                        => '1.0904',
'TestApp'                           => 'undef',
'TestApp::Controller::Root'         => 'undef',
'Text::Balanced'                    => '2.0.0',
'Text::SimpleTable'                 => '0.03',
'Time::HiRes'                       => '1.9707',
'Tree::Simple'                      => '1.17',
'Tree::Simple::Visitor'             => '1.11',
'Tree::Simple::Visitor::FindByPath' => '0.03',
'Tree::Simple::Visitor::FindByUID'  => '0.02',
'URI::QueryParam'                   => 'undef',
'lib'                               => '0.5565',
'version'                           => '0.7203',
'version::vxs'                      => '0.7203',
'Apache::Connection'                => '1.00',
'Apache::Constants'                 => '1.09',
'Apache::Server'                    => '1.01',
'Apache::Table'                     => '0.01',
'mod_perl'                          => '1.29',
'Apache::Constants::Exports'        => 'undef',
'Digest::HMAC_MD5'                  => '1.01',
'GSSAPI'                            => '0.24',
'GSSAPI::Status'                    => 'undef',
'Apache'                            => '1.27',
'Catalyst::Utils'                   => 'undef',
'HTTP::Request::AsCGI'              => '0.5',
'Catalyst::Exception'               => 'undef',
'Class::Inspector'                  => '1.17',
'URI'                               => '1.35',
'LWP::UserAgent'                    => '2.036',
'LWP::Protocol::http10'             => 'undef',
'URI::URL'                          => '5.03',
'LWP::Authen::Basic'                => 'undef',
'LWP::Authen::Digest'               => 'undef',
'LWP::Authen::Ntlm'                 => '0.05',
'LWP::Authen::Wsse'                 => '0.05',
'LWP::Protocol::GHTTP'              => 'undef',
'LWP::Protocol::cpan'               => 'undef',
'LWP::Protocol::data'               => 'undef',
'LWP::Protocol::file'               => 'undef',
'LWP::Protocol::ftp'                => 'undef',
'LWP::Protocol::gopher'             => 'undef',
'LWP::Protocol::https'              => 'undef',
'LWP::Protocol::https10'            => 'undef',
'LWP::Protocol::ldap'               => '1.10',
'LWP::Protocol::loopback'           => 'undef',
'LWP::Protocol::mailto'             => 'undef',
'LWP::Protocol::nntp'               => 'undef',
'LWP::Protocol::nogo'               => 'undef',
'LWP::Protocol::http'               => 'undef',
'URI::http'                         => 'undef',
'URI::ftp'                          => 'undef',
'URI::gopher'                       => 'undef',
'URI::https'                        => 'undef',
'URI::ldapi'                        => 'undef',
'URI::ldaps'                        => 'undef',
'URI::mms'                          => 'undef',
'URI::nntp'                         => 'undef',
'URI::pop'                          => 'undef',
'URI::rlogin'                       => 'undef',
'URI::rsync'                        => 'undef',
'URI::rtspu'                        => 'undef',
'URI::sips'                         => 'undef',
'URI::snews'                        => 'undef',
'URI::ssh'                          => 'undef',
'URI::telnet'                       => 'undef',
'URI::tn3270'                       => 'undef',
'URI::urn::isbn'                    => 'undef',
'URI::urn::oid'                     => 'undef',
'URI::ldap'                         => '1.11',
'URI::rtsp'                         => 'undef',
'URI::urn'                          => 'undef',
'URI::mailto'                       => 'undef',
'URI::data'                         => 'undef',
'URI::news'                         => 'undef',
'URI::file'                         => '4.19',
'URI::sip'                          => '0.10',
'Path::Class'                       => '0.16_01',
'Class::Accessor'                   => '0.31',
'IO::Compress::Gzip'                => '2.005',
'IO::Uncompress::Gunzip'            => '2.005',
'IO::Compress::Base::Common'        => '2.005',
'Compress::Raw::Zlib'               => '2.005',
'IO::Compress::Gzip::Constants'     => '2.005',
'Convert::ASN1::IO'                 => 'undef',
'Convert::ASN1::_decode'            => 'undef',
'Convert::ASN1::_encode'            => 'undef',
'Convert::ASN1::parser'             => 'undef',
'Crypt::SSLeay::X509'               => 'undef',
'Crypt::SSLeay::CTX'                => 'undef',
'Digest::HMAC'                      => '1.01',
'Digest::base'                      => '1.00',
'File::Spec::Unix'                  => '1.5',
'File::Spec'                        => '3.24',
'Cwd'                               => '3.24',
'HTML::Parser'                      => '3.56',
'HTTP::Cookies::Netscape'           => '1.26',
'Time::Zone'                        => '2.22',
'Compress::Bzip2'                   => '2.09',
'Compress::Zlib'                    => '2.005',
'Class::Accessor::Fast'             => '0.31',
'IO::File'                          => '1.14',
'IO::Handle'                        => '1.27',
'HTTP::Message'                     => '1.57',
'File::GlobMapper'                  => '0.000_02',
'IO::Compress::Base'                => '2.005',
'IO::Compress::RawDeflate'          => '2.005',
'IO::Compress::Adapter::Deflate'    => '2.005',
'IO'                                => '1.23',
'IO::Pipe'                          => '1.13',
'IO::Seekable'                      => '1.10',
'IO::Dir'                           => '1.06',
'Errno'                             => '1.10',
'Net::SSLeay'                       => '1.30',
'IO::Uncompress::RawInflate'        => '2.005',
'IO::Compress::Zlib::Extra'         => '2.005',
'IO::Uncompress::Adapter::Inflate'  => '2.005',
'IO::Uncompress::Base'              => '2.005',
'Digest::SHA1'                      => '2.11',
'HTML::HeadParser'                  => '2.22',
'HTML::Entities'                    => '1.35',
'File::Listing'                     => '1.15',
'IO::Socket'                        => '1.30',
'IO::Socket::UNIX'                  => '1.23',
'IO::Socket::INET'                  => '1.31',
'IO::Select'                        => '1.17',
'Net::HTTP'                         => '1.00',
'Net::HTTPS'                        => '1.00',
'Net::SSL'                          => '2.81',
'IO::Socket::SSL'                   => '1.08',
'HTTP::Negotiate'                   => '1.16',
'LWP::MediaTypes'                   => '1.33',
'Net::LDAP'                         => '0.34',
'Mail::Internet'                    => '1.77',
'HTTP::Request'                     => '1.40',
'HTTP::Response'                    => '1.53',
'LWP::Protocol'                     => '1.46',
'HTTP::Status'                      => '1.28',
'LWP::Debug'                        => 'undef',
'HTTP::Request::Common'             => '1.28',
'LWP::ConnCache'                    => '0.01',
'HTTP::Cookies'                     => '1.39',
'HTTP::Headers::Util'               => '1.13',
'HTTP::Headers'                     => '1.64',
'LWP::MemberMixin'                  => 'undef',
'LWP'                               => '5.808',
'HTTP::Date'                        => '1.47',
'Mail::Header'                      => '1.77',
'Net::HTTP::Methods'                => '1.02',
'Net::LDAP::Bind'                   => '1.02',
'Net::LDAP::Extension'              => '1.01',
'Net::LDAP::RootDSE'                => '0.01',
'Net::LDAP::Schema'                 => '0.9905',
'Net::LDAP::Search'                 => '0.11',
'Convert::ASN1::Debug'              => 'undef',
'Convert::ASN1'                     => '0.21',
'Net::LDAP::Message'                => '1.09',
'Net::LDAP::ASN'                    => '0.04',
'Net::LDAP::Constant'               => '0.04',
'Net::LDAP::Filter'                 => '0.15',
'Net::LDAP::Entry'                  => '0.23',
'Net::LDAP::Control'                => '0.06',
'Net::LDAP::Util'                   => '0.11',
'Net::LDAP::LDIF'                   => '0.17',
'Authen::SASL::EXTERNAL'            => '0.99',
'Authen::SASL::CRAM_MD5'            => '0.99',
'Authen::SASL'                      => '2.10',
'Authen::SASL::Perl'                => '1.05',
'Authen::SASL::Perl::ANONYMOUS'     => '1.03',
'Authen::SASL::Perl::CRAM_MD5'      => '1.03',
'Authen::SASL::Perl::DIGEST_MD5'    => '1.05',
'Authen::SASL::Perl::EXTERNAL'      => '1.03',
'Authen::SASL::Perl::GSSAPI'        => '0.02',
'Authen::SASL::Perl::LOGIN'         => '1.03',
'Authen::SASL::Perl::PLAIN'         => '1.04',
'Crypt::SSLeay::Conn'               => 'undef',
'Crypt::SSLeay::Err'                => 'undef',
'Crypt::SSLeay::MainContext'        => 'undef',
'Crypt::SSLeay'                     => '0.56',
'Path::Class::File'                 => 'undef',
'Path::Class::Dir'                  => 'undef',
'Path::Class::Entity'               => 'undef',
'URI::_foreign'                     => 'undef',
'URI::_generic'                     => 'undef',
'URI::WithBase'                     => '2.19',
'URI::Escape'                       => '3.28',
'URI::_segment'                     => 'undef',
'URI::_userpass'                    => 'undef',
'URI::_server'                      => 'undef',
'URI::_ldap'                        => '1.10',
'URI::_query'                       => 'undef',
'URI::_login'                       => 'undef',
'Mail::Util'                        => '1.77',
'Mail::Mailer'                      => '1.77',
'Mail::Address'                     => '1.77',
'Catalyst::Test'                    => 'undef',

Regards,
Jonathan Rockway



_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

signature.asc (380 bytes) Download Attachment

Re: + in GET param

by Gavin Henry-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Jonathan Rockway wrote:

> Gavin Henry wrote:
>> Tatsuhiko Miyagawa wrote:
>>  
>>> I tested but couldn't reproduce. So I wouldn't say this is a Cat bug.
>> And the same result as before:
>>
>> Hello first.last me@...
>>  
>
> Would you guys be so kind as to run scandeps.pl (from Module::ScanDeps
> on CPAN) and report the versions of everything along the prereq chain?
>
> FWIW, I have the same results as miyagawa and my versions look like:
>
> $ scandeps.pl -x script/testapp_test.pl
>

[ghenry@suretec FTM]$ scandeps.pl -x script/ftm_server.pl
Can't locate FTM.pm in @INC ....
......
......
<snip>
SYSTEM ERROR in executing script/ftm_server.pl: 512 at
/usr/lib/perl5/site_perl/5.8.8/Module/ScanDeps.pm line 1058.

without -x I get:

[ghenry@suretec FTM]$ scandeps.pl script/ftm_server.pl
'APR'                                        => '0.009000',
'APR::XSLoader'                              => 'undef',
'Apache2::XSLoader'                          => 'undef',
'ModPerl::Const'                             => '2.000003',
'mod_perl2'                                  => '2.000003',
'CGI::Simple::Util'                          => '0.03',
'CGI::Simple::Cookie'                        => '0.03',
'Catalyst::Request::Upload'                  => 'undef',
'URI::QueryParam'                            => 'undef',
'Catalyst::Exception'                        => 'undef',
'HTML::Entities'                             => '1.35',
'HTTP::Body'                                 => '0.9',
'URI::file'                                  => '4.19',
'URI::urn'                                   => 'undef',
'URI::sip'                                   => '0.10',
'URI::mailto'                                => 'undef',
'URI::ftp'                                   => 'undef',
'URI::gopher'                                => 'undef',
'URI::https'                                 => 'undef',
'URI::ldapi'                                 => 'undef',
'URI::ldaps'                                 => 'undef',
'URI::mms'                                   => 'undef',
'URI::nntp'                                  => 'undef',
'URI::pop'                                   => 'undef',
'URI::rlogin'                                => 'undef',
'URI::rsync'                                 => 'undef',
'URI::rtspu'                                 => 'undef',
'URI::sips'                                  => 'undef',
'URI::snews'                                 => 'undef',
'URI::ssh'                                   => 'undef',
'URI::telnet'                                => 'undef',
'URI::tn3270'                                => 'undef',
'URI::urn::isbn'                             => 'undef',
'URI::urn::oid'                              => 'undef',
'URI::ldap'                                  => '1.11',
'URI::http'                                  => 'undef',
'URI::rtsp'                                  => 'undef',
'URI::data'                                  => 'undef',
'URI::news'                                  => 'undef',
'APR::Table'                                 => '0.009000',
'Apache2::Connection'                        => '2.000003',
'Apache2::Const'                             => '2.000003',
'Apache2::RequestIO'                         => '2.000003',
'Apache2::RequestRec'                        => '2.000003',
'Apache2::RequestUtil'                       => '2.000003',
'Apache2::Response'                          => '2.000003',
'Catalyst::Engine'                           => 'undef',
'Catalyst::Engine::Apache::MP13'             => 'undef',
'Catalyst::Engine::Apache2::MP19'            => 'undef',
'Catalyst::Engine::Apache2::MP20'            => 'undef',
'Catalyst::Engine::FastCGI'                  => 'undef',
'Catalyst::Engine::Apache'                   => '1.07',
'Catalyst::Engine::Apache2'                  => 'undef',
'FCGI'                                       => '0.67',
'Data::Dump'                                 => '1.06',
'Catalyst::Engine::CGI'                      => 'undef',
'Catalyst::Engine::HTTP::Restarter'          => 'undef',
'HTTP::Headers'                              => '1.64',
'Catalyst::Engine::HTTP::Restarter::Watcher' => 'undef',
'HTTP::Date'                                 => '1.47',
'HTTP::Status'                               => '1.28',
'HTTP::Request'                              => '1.40',
'File::Modified'                             => '0.07',
'Class::Accessor::Fast'                      => '0.25',
'Class::Accessor'                            => '0.25',
'IO::Compress::Gzip'                         => '2.005',
'IO::Uncompress::Gunzip'                     => '2.005',
'IO::Compress::Base::Common'                 => '2.005',
'Compress::Raw::Zlib'                        => '2.005',
'IO::Compress::Gzip::Constants'              => '2.005',
'HTML::Parser'                               => '3.56',
'HTTP::Body::MultiPart'                      => 'undef',
'HTTP::Body::OctetStream'                    => 'undef',
'HTTP::Body::UrlEncoded'                     => 'undef',
'Time::Zone'                                 => '2.22',
'Compress::Zlib'                             => '2.005',
'HTTP::Headers::Util'                        => '1.13',
'HTTP::Response'                             => '1.53',
'URI'                                        => '1.35',
'URI::URL'                                   => '5.03',
'HTTP::Message'                              => '1.57',
'File::GlobMapper'                           => '0.000_02',
'IO::Compress::Base'                         => '2.005',
'IO::Compress::RawDeflate'                   => '2.005',
'IO::Compress::Zlib::Extra'                  => '2.005',
'IO::Compress::Adapter::Deflate'             => '2.005',
'IO::Uncompress::RawInflate'                 => '2.005',
'IO::Uncompress::Adapter::Inflate'           => '2.005',
'IO::Uncompress::Base'                       => '2.005',
'URI::_foreign'                              => 'undef',
'URI::_generic'                              => 'undef',
'URI::WithBase'                              => '2.19',
'URI::_segment'                              => 'undef',
'URI::_ldap'                                 => '1.10',
'URI::_query'                                => 'undef',
'URI::Escape'                                => '3.28',
'URI::_server'                               => 'undef',
'URI::_login'                                => 'undef',
'URI::_userpass'                             => 'undef',
'Catalyst::Engine::HTTP'                     => 'undef'


_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Gavin Henry-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Jonathan Rockway wrote:

> Gavin Henry wrote:
>> Tatsuhiko Miyagawa wrote:
>>  
>>> I tested but couldn't reproduce. So I wouldn't say this is a Cat bug.
>> And the same result as before:
>>
>> Hello first.last me@...
>>  
>
> Would you guys be so kind as to run scandeps.pl (from Module::ScanDeps
> on CPAN) and report the versions of everything along the prereq chain?
>
> FWIW, I have the same results as miyagawa and my versions look like:
>
> $ scandeps.pl -x script/testapp_test.pl

Right, I've created a new test app, like Tatsuhiko Miyagawa showed. I get:

first.last me@...

on the debug console and:

Hello first.last me@...

scandeps for this new app gives:


Can't locate object method "run" via package "Test" at
<snip>
SYSTEM ERROR in executing script/test_server.pl: 2304 at
/usr/lib/perl5/site_perl/5.8.8/Module/ScanDeps.pm line 1058.

_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Tatsuhiko Miyagawa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

As discussed on IRC, this seems to be a bug introduced around Catalyst 5.708.
I got a commit bit from Jay (thanks!) and committed the fix with test suite.

http://dev.catalystframework.org/svnweb/Catalyst/revision/?rev=6873


On 9/12/07, Gavin Henry <ghenry@...> wrote:

> Jonathan Rockway wrote:
> > Gavin Henry wrote:
> >> Tatsuhiko Miyagawa wrote:
> >>
> >>> I tested but couldn't reproduce. So I wouldn't say this is a Cat bug.
> >> And the same result as before:
> >>
> >> Hello first.last me@...
> >>
> >
> > Would you guys be so kind as to run scandeps.pl (from Module::ScanDeps
> > on CPAN) and report the versions of everything along the prereq chain?
> >
> > FWIW, I have the same results as miyagawa and my versions look like:
> >
> > $ scandeps.pl -x script/testapp_test.pl
>
> Right, I've created a new test app, like Tatsuhiko Miyagawa showed. I get:
>
> first.last me@...
>
> on the debug console and:
>
> Hello first.last me@...
>
> scandeps for this new app gives:
>
>
> Can't locate object method "run" via package "Test" at
> <snip>
> SYSTEM ERROR in executing script/test_server.pl: 2304 at
> /usr/lib/perl5/site_perl/5.8.8/Module/ScanDeps.pm line 1058.
>
> _______________________________________________
> List: Catalyst@...
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@.../
> Dev site: http://dev.catalyst.perl.org/
>


--
Tatsuhiko Miyagawa

_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: + in GET param

by Gavin Henry-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

<quote who="Tatsuhiko Miyagawa">
> As discussed on IRC, this seems to be a bug introduced around Catalyst
> 5.708.
> I got a commit bit from Jay (thanks!) and committed the fix with test
> suite.
>
> http://dev.catalystframework.org/svnweb/Catalyst/revision/?rev=6873

Yeah, thanks. For others, the bug was double decoding, %2B -> + -> ' '
(space).

I'll upgrade/patch our env with the fix.

Thanks.

>
>
> On 9/12/07, Gavin Henry <ghenry@...> wrote:
>> Jonathan Rockway wrote:
>> > Gavin Henry wrote:
>> >> Tatsuhiko Miyagawa wrote:
>> >>
>> >>> I tested but couldn't reproduce. So I wouldn't say this is a Cat
>> bug.
>> >> And the same result as before:
>> >>
>> >> Hello first.last me@...
>> >>
>> >
>> > Would you guys be so kind as to run scandeps.pl (from Module::ScanDeps
>> > on CPAN) and report the versions of everything along the prereq chain?
>> >
>> > FWIW, I have the same results as miyagawa and my versions look like:
>> >
>> > $ scandeps.pl -x script/testapp_test.pl
>>
>> Right, I've created a new test app, like Tatsuhiko Miyagawa showed. I
>> get:
>>
>> first.last me@...
>>
>> on the debug console and:
>>
>> Hello first.last me@...
>>
>> scandeps for this new app gives:
>>
>>
>> Can't locate object method "run" via package "Test" at
>> <snip>
>> SYSTEM ERROR in executing script/test_server.pl: 2304 at
>> /usr/lib/perl5/site_perl/5.8.8/Module/ScanDeps.pm line 1058.
>>
>> _______________________________________________
>> List: Catalyst@...
>> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
>> Searchable archive:
>> http://www.mail-archive.com/catalyst@.../
>> Dev site: http://dev.catalyst.perl.org/
>>
>
>
> --
> Tatsuhiko Miyagawa
>
> _______________________________________________
> List: Catalyst@...
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst@.../
> Dev site: http://dev.catalyst.perl.org/
>


_______________________________________________
List: Catalyst@...
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/