Php 作为查询字符串传递的HTML链接转义url

Php 作为查询字符串传递的HTML链接转义url,php,cakephp,Php,Cakephp,我有以下链接: $this->Html->link('admin',array('admin'=>true,'controller'=>'users','action'=>'login','?'=>array('continue'=>$this->here))) 这应该会产生一个链接,如:http://domain.com/admin/login?continue=/location 但是,它总是逃避/,因此我得到一个类似于:http://domain.com/admin/login?conti

我有以下链接:

$this->Html->link('admin',array('admin'=>true,'controller'=>'users','action'=>'login','?'=>array('continue'=>$this->here)))

这应该会产生一个链接,如:
http://domain.com/admin/login?continue=/location

但是,它总是逃避
/
,因此我得到一个类似于:
http://domain.com/admin/login?continue=%2Flocation


我该怎么阻止这一切?我在链接中尝试了
array('escape'=>false)
,但这只会转义链接本身,而不会转义
href

您需要在链接完成后手动将此部分添加到url:

$this->Html->url(...).'?continue=/location'
我不推荐(可能是无效的url!)

或者在目标操作中使用url_decode()再次接收正确的字符串(蛋糕通常也会自动接收)。 检查$this->request->params[named][location]键包含的内容:

array('admin'=>true,'controller'=>'users','action'=>'login','continue'=>$this->here)

行动计划。在1.3中仍然是$this->params[named][location]

您需要在该部分完成后手动将其添加到url:

$this->Html->url(...).'?continue=/location'
我不推荐(可能是无效的url!)

或者在目标操作中使用url_decode()再次接收正确的字符串(蛋糕通常也会自动接收)。 检查$this->request->params[named][location]键包含的内容:

array('admin'=>true,'controller'=>'users','action'=>'login','continue'=>$this->here)

行动计划。在1.3中仍然是$this->params[named][location]

我可以问一下为什么使用_getparams而不是named params吗?从您的域外观来看,您的系统上可以使用mod_rewrite。那会给你省去很多麻烦。如果我这样做会不会看起来很奇怪:
http://domain.com/admin/login/continue:/location
嗯,将任何特殊字符传递到url看起来总是很奇怪。base64encode或至少url_encode是获得有效url的最起码的方法(蛋糕在这里为您提供)。你总是可以在事后“撤销”编码。你能说明你的意思吗?我更喜欢使用GET params,因为这是做类似事情的标准方式,但我不希望它逃避与蛋糕无关的
/
;据我所知,这是标准行为。Wordpress在登录和重定向时也会这样做(对斜杠进行编码)。不确定它是特定于浏览器还是特定于语言,但我认为没有解决方案。不管怎么说,这纯粹是美学上的,所以它真的值得担心吗。请参阅以进行进一步讨论。我可以问一下为什么使用_getparams而不是命名params吗?从您的域外观来看,您的系统上可以使用mod_rewrite。那会给你省去很多麻烦。如果我这样做会不会看起来很奇怪:
http://domain.com/admin/login/continue:/location
嗯,将任何特殊字符传递到url看起来总是很奇怪。base64encode或至少url_encode是获得有效url的最起码的方法(蛋糕在这里为您提供)。你总是可以在事后“撤销”编码。你能说明你的意思吗?我更喜欢使用GET params,因为这是做类似事情的标准方式,但我不希望它逃避与蛋糕无关的
/
;据我所知,这是标准行为。Wordpress在登录和重定向时也会这样做(对斜杠进行编码)。不确定它是特定于浏览器还是特定于语言,但我认为没有解决方案。不管怎么说,这纯粹是美学上的,所以它真的值得担心吗。请参阅以获得进一步的讨论。那么我应该为我的Html链接编写什么呢?因为我仍然没有正确地遵循…正如我已经指出的-它应该对它进行编码。否则它就是url的一部分。你显然想把它作为“内容”来传递。因此,它必须被编码。蛋糕样式(上面的解决方案)或base64encoded。我看到它没有在url中编码,所以url作为内容传递而没有编码是完全合理的,也是可能的。那么,我该为我的Html链接写些什么呢?因为我仍然没有正确地遵循…正如我已经指出的-它应该对它进行编码。否则它就是url的一部分。你显然想把它作为“内容”来传递。因此,它必须被编码。蛋糕样式(上面的解决方案)或base64encoded。我见过它没有在url中编码,所以它完全有可能将url作为内容传递而不是编码。