首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数接收的错误值

函数接收的错误值
EN

Stack Overflow用户
提问于 2013-04-12 16:05:36
回答 2查看 98关注 0票数 1

在我用CakePHP 1.3.10创建的网站上发生了一些非常奇怪的事情,我不知道这是CakePHP问题还是PHP问题。我遇到的问题是,在一个属于插件的控制器内有一个动作。

这是一个简单的函数,看起来是:

代码语言:javascript
复制
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)?

任何帮助都将不胜感激!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-12 20:39:22

您可能试图通过相对URL来包含行为;可能来自样式表

例如:如果使用此URL链接iepngfix.htc

代码语言:javascript
复制
../js/iepngfix.htc

你现在在这个页面上

代码语言:javascript
复制
http://example.com/mycontroller/myaction/

然后将iepngfix.htc URL解析为:

代码语言:javascript
复制
http://example.com/mycontroller/js/iepngfix.htc

这将产生一个错误404。

然而,如果您目前在这个页面上,那么:

代码语言:javascript
复制
http://example.com/mycontroller/myaction/123

然后将iepngfix.htc URL解析为:

代码语言:javascript
复制
http://example.com/mycontroller/myaction/js/iepngfix.htc

最后一部分将作为参数发送给您的控制器-action (js/iepngfix.ht)。

如何解决这个问题

  • 首先,你真的需要那个pngfix吗?您可能只需要用于6及以下版本。除非你瞄准中国,否则Internet 6的市场份额不到1% (http://www.ie6countdown.com/)。即使如此,这种行为也会产生许多负面影响,导致表现很差。
  • 检查你的网址!由于URL重写,您应该始终使用完全路径来访问您的“资产”(CSS,JavaScript);即/js/myscript.js而不是js/myscript.js../js/myscript.js
票数 1
EN

Stack Overflow用户

发布于 2013-04-12 20:23:31

我想我可能找到了罪魁祸首。在其中一个css文件中有一个css代码“隐藏”:

代码语言:javascript
复制
body { behavior: url('js/iepngfix.htc') }

(我要说的是,这个设计是别人做的)

在删除了这一片段之后,这个问题似乎不会再发生了。为什么?我不知道。为什么在函数中将其作为参数传递?我真的不知道..。为什么是随机发生的?我真的不知道..。

我相信所有这些都有一个解释,但我没有太多的时间去进一步调查,我很高兴它现在起作用了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15976034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档