我用 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)错误值总是相同:/my_plugin/my_controller/my_function/js/iepngfix.htc
你能看出什么问题是对的吗?我不知道为什么在世界上js/iepngfix.htc存储在那里!我将$my_parameter放在示例中的原因是因为我已经意识到js/iepngfix.htc被作为参数传递到该函数中(因此它也显示在$this->params数组中)。但为什么?
我的网站上没有像 /my_plugin/my_controller/my_function/js/iepngfix.htc这样的链接,那怎么会发生呢?我不相信许多不同的用户会同意在浏览器中输入该网址(顺便说一句,用户必须登录才能访问该链接)。显然,在某些时候,当用户浏览网站时,该链接被“调用”,但我不知道如何......
该网站使用了一些针对 PNG 图像的 IE hack(如 iepngfix.htc、iepng_tilebg.js 等),但我已经删除了它们,因此它们不会在任何地方调用,甚至从服务器中删除了文件。
我知道很难回答为什么会发生这种情况,但是如果有人可以就如何对我的网站进行故障排除以找出问题的根源给我一些建议。我试图重新创建这个问题,但我只能使用 IE 并访问用户访问的链接之一(例如/my_plugin/my_controller/my_function/43),但尝试了更多次并且它没有再次发生. 那么这是IE的问题吗?当用户调用正确的链接时,此浏览器是否调用了该链接(错误的链接) ?
任何帮助将非常感激!!