在我用CakePHP 1.3.10创建的网站上发生了一些非常奇怪的事情,我不知道这是CakePHP问题还是PHP问题。我遇到的问题是,在一个属于插件的控制器内有一个动作。
这是一个简单的函数,看起来是:
function my_function($my_parameter) {
$current_url = $this->params['url']['url']; //We get the current url (includes plugin/controller/action/parameters) from Cake's $this->params array
$this->saveInfoToDB($current_url); //Function that saves the variable and other info to a table in the database - This function doesn't change the value of the variable, just saves it
}此操作由网站中的几个链接调用,格式为'/my_plugin/my_controller/my_function/my_paramenter'.。这样做的目的是显示页面"my_function“并将当前的url存储在数据库中。
那么问题是什么呢?让我解释一下:
查看数据库中"saveInfoToDB“存储的注册中心,我意识到我存储"current_url”值的字段有时是(似乎是随机的)有意想不到的值。
/my_plugin/my_controller/my_function/3 (整数从1到100)的普通值看起来像:错误的值总是相同的:
你能看出什么问题是对的?我不知道为什么在这个世界上js/iepngfix.htc被储存在那里!我之所以在示例中使用$my_parameter,是因为我意识到js/iepngfix.htc在该函数中被作为参数(因此它也显示在$this->params数组中)。但是为什么呢?
我的网站没有像/my_plugin/my_controller/my_function/js/iepngfix.htc,那样的链接,所以这怎么会发生呢?我不相信许多不同的用户会同意在浏览器中输入这个url (顺便说一下,用户必须登录才能访问链接)。很明显,当用户浏览网站时,这个链接在某种程度上被“称为”,但我不知道如何.
这个网站为PNG图像使用了一些IE黑客(比如iepngfix.htc、iepng_tilebg.js等),但是我已经删除了它们,所以它们不会被任何地方调用,甚至从服务器上删除文件。
我知道很难得到为什么会发生这种情况的答案,但如果有人能给我一些建议,如何排除我的网站,以找到问题的根源。我尝试重新创建了这个问题,但我只能用IE和访问用户访问的链接之一(例如/my_plugin/my_controller/my_function/43),,但尝试了更多次,但没有再次发生)。这是IE的问题吗?当用户调用 one时,浏览器是否调用该链接(错误的1)?
任何帮助都将不胜感激!!
发布于 2013-04-12 20:39:22
您可能试图通过相对URL来包含行为;可能来自样式表;
例如:如果使用此URL链接iepngfix.htc
../js/iepngfix.htc你现在在这个页面上
http://example.com/mycontroller/myaction/然后将iepngfix.htc URL解析为:
http://example.com/mycontroller/js/iepngfix.htc这将产生一个错误404。
然而,如果您目前在这个页面上,那么:
http://example.com/mycontroller/myaction/123然后将iepngfix.htc URL解析为:
http://example.com/mycontroller/myaction/js/iepngfix.htc最后一部分将作为参数发送给您的控制器-action (js/iepngfix.ht)。
如何解决这个问题
/js/myscript.js而不是js/myscript.js或../js/myscript.js。发布于 2013-04-12 20:23:31
我想我可能找到了罪魁祸首。在其中一个css文件中有一个css代码“隐藏”:
body { behavior: url('js/iepngfix.htc') }(我要说的是,这个设计是别人做的)
在删除了这一片段之后,这个问题似乎不会再发生了。为什么?我不知道。为什么在函数中将其作为参数传递?我真的不知道..。为什么是随机发生的?我真的不知道..。
我相信所有这些都有一个解释,但我没有太多的时间去进一步调查,我很高兴它现在起作用了!
https://stackoverflow.com/questions/15976034
复制相似问题