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