我刚刚遇到了一个奇怪的问题。我最近在 Windows 7 平台上使用 Kohana 3.2.2 + jquery + html + WAMP 开发了一个中型网站。一切似乎都运行良好,直到有人尝试从 Mac 平台访问该页面。似乎在以多部分形式发送一些带有文件的数据时,未设置全局变量 $_POST ,即使在 Web 浏览器中调试数据时我能够看到 DATA IS SET :| 控制器无法通过任何 $_POST 或 request->post() 访问它。我重复一遍,当用户从 Windows 平台访问页面时一切正常(在少数独立客户端上测试),但在从 Mac 平台访问时(在少数独立客户端上测试)无法正常工作。它正在杀死我......
我试图做的事情的例子:
在视图中:
用户将数据放入输入(文本和文件类型)。数据通过 enctype = multipart/form-data 的表单发送到控制器的操作
在控制器中:
$post = request->post();
if($post['sometextinput'] != '') 抛出未知索引 'sometextinput' 的异常。
问问题
262 次
2 回答
0
这非常奇怪。我每天都使用 Kohana(我在 Mac 上开发),从来没有遇到过这样的问题。你能发布你的控制器和视图吗?我将把它插入一个虚拟项目,看看我是否可以复制这个问题。如果可以的话,我会尽我所能让它工作。
编辑:
这可能是一个奇怪的配置问题吗?
只是为了我自己的澄清。
您提交的表单包含输入字段和一个或多个文件上传。
在 Windows 机器上查看它时,您可以看到数据设置在 $_POST 或 $request->post() 中。
在 OSX 上,控制器无法通过 $_POST 或 $request->post(); 看到它。
在你的 before 方法中确保你有“parent::before();”。如果您已经在调用 parent::before() 尝试将其作为您的 before() 方法中的第一条语句。如果这不起作用,请尝试将其添加为最后一条语句。这是在黑暗中拍摄,但值得一试。
如果您没有 before() 方法,则添加一个并调用 parent::before();。
于 2012-10-19T05:40:29.407 回答
0
我不确定您是否只是急于输入上面的示例,但实际上应该是:
#$post = request->post(); //wouldn't recommend doing this
if($this->request->post('sometextinput') != '') throws exception of unknown index 'sometextinput'.
于 2012-10-20T09:23:43.417 回答