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 -~----------~----~----~----~------~----~------~--~---
