So I know this post happened nearly 3 years ago, but this really stumped me
for a good while. The final solution I came up with was to triple encode
the email address before passing it to the URL like so:
$enc_email = urlencode(urlencode(urlencode('[email protected]')));
This in turn would get put into the URL:
http://example.com/email/confim/foo%25252Bbar%252540example.com/
After all of the URL processing magic, the email finally gets put into
CakePHP correctly.
Now why CakePHP requires this be done is somewhat a mystery to me, but the
best thing I can come up with is that it's not all CakePHP's fault. The
best thing I can come up with is that this maybe http server or apache
configuration specific. It could even be different from distro of linux to
distro of linux. It seems that some installs of apache require you to
double encode the '+', '\', or '/' variables in order to process them
correctly. This was probably designed to prevent some sort of security
breach. Please see the following link for more info:
http://www.jampmark.com/web-scripting/5-solutions-to-url-encoded-slashes-problem-in-apache.html
The final encoding is probably required for CakePHP. Although I can't find
it in the code, I am sure CakePHP decodes all URL variables again somewhere.
Hopefully this will help prevent any frustration for someone in the future.
-Matt Brooks
On Monday, January 26, 2009 10:19:01 PM UTC-6, Jon Molesa wrote:
>
> 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
>
>
--
Our newest site for the community: CakePHP Video Tutorials
http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others
with their CakePHP related questions.
To unsubscribe from this group, send email to
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php