Tried that too.  Same results.  I tried various encodings.  Even tired
making it a hashed string.  But every time I output it the view, the +
symbol gets converted to a space.  I resolved it by doing a str_replace.
That takes care of it, but I'm still curious why it is happening.  I'm
curious if CakePHP is sanitizing the string prior to output and if
there's a way to prevent that from happening.

*On Tue, Jan 27, 2009 at 11:48:15AM -0500 brian <[email protected]> wrote:

> Date: Tue, 27 Jan 2009 11:48:15 -0500
> From: brian <[email protected]>
> Subject: Re: Passing an email address as param with a plus(+) sign
> To: [email protected]
> 
> 
> Try with rawurlencode()
> 
> On Tue, Jan 27, 2009 at 9:55 AM, Jon Molesa <[email protected]> wrote:
> >
> > No, that still didn't get it.  If I urlencode the string and pass it as
> > a param /users/confirm/foo%2Bbar%40example.com
> >
> > then in users_controller.php
> >
> > function confirm($email){
> >  $email = urldecode($email);
> >  $this->set('email',$email);
> > }
> >
> > confirm.ctp
> >
> > <?php echo $email ?>
> >
> > still outputs
> >
> > foo [email protected]
> >
> > In fact if I leave out the $email = urldecode($email) altogether
> > confirm.ctp still outputs foo [email protected].
> >
> > *On Tue, Jan 27, 2009 at 04:23:15AM +0000 [email protected] 
> > <[email protected]> wrote:
> >
> >> Date: Tue, 27 Jan 2009 04:23:15 +0000
> >> From: [email protected]
> >> Subject: Re: Passing an email address as param with a plus(+) sign
> >> To: [email protected]
> >>
> >> The plus sign needs to be url encoded. The plus sign translates to a space 
> >> when used in the url
> >> Schreck
> >>
> >> -----Original Message-----
> >> From: Jon Molesa <[email protected]>
> >>
> >> Date: Mon, 26 Jan 2009 23:19:01
> >> To: CakePHP<[email protected]>
> >> Subject: Passing an email address as param with a plus(+) sign
> >>
> >>
> >>
> >> I'm trying to pass a valid email address as a parameter in the url.
> >>
> >> [email protected]
> >>
> >> in my model it strips the + sign.
> >>
> >> function confirm($email){
> >>       $this->set('email',$email);
> >> }
> >>
> >> confirm.ctp
> >>
> >> <?php echo $email ?>
> >>
> >> outputs
> >>
> >> foo [email protected]
> >>
> >> I believe this is happening prior to the controller function getting
> >> ahold of the string as I've tried various encoding functions including
> >> Security::cipher() at the beginning of the function upon decoding I
> >> still get the above output.  Can anyone suggest how I might be able to
> >> retain the + sign in my controller logic and back out to the view?
> >>
> >> --
> >> Jon Molesa
> >> [email protected]
> >> if you're bored or curious
> >> http://rjmolesa.com
> >>
> >>
> >>
> >> >
> >
> > --
> > Jon Molesa
> > [email protected]
> > if you're bored or curious
> > http://rjmolesa.com
> >
> > >
> >
> 
> 
-- 
Jon Molesa
[email protected]
if you're bored or curious
http://rjmolesa.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to