What does $email look like before you use set()? I don't think the
problem's there but you'll need to backtrack. I just did a test and
didn't see any change in the value between controller and view when I
used '@' or '%2B'. I'm sure the issue lies before your confirm()
method.

On Tue, Jan 27, 2009 at 11:57 AM, Jon Molesa <[email protected]> wrote:
>
> 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