【问题标题】:Cakephp 3: Getting Forbidden error when going to edit in live serverCakephp 3:在实时服务器中编辑时出现禁止错误
【发布时间】:2016-12-21 10:37:26
【问题描述】:

此代码在本地服务器中运行良好,但在实时服务器中我收到禁止错误 403。如果我提到表单类型 = 'post',它在服务器中运行。但文件没有上传。如果我使用 'type'=>'file' 则会出现 Forbidden 错误。这是我的表单代码

<?php 
     echo $this->Form->create($depositOption,['type'=>'file']); // type='post' is working but image not uploading 
     echo $this->Form->input('name');
     echo $this->Form->input('image_edit',['type'=>'file']);
     echo $this->Form->submit("Submit")
     echo $this->Form->end() 
?>

我的控制器代码像

if ($this->request->is(['patch', 'post', 'put'])) {
    if(!empty($this->request->data['image_edit']['name'])){
        // upload image code 
    }
}
$depositOption = $this->DepositOptions->patchEntity($depositOption, $this->request->data);
$this->DepositOptions->save($depositOption)

如何定义这个表单类型是文件,类型也是帖子。

【问题讨论】:

  • 你启用调试模式了吗?
  • 我的“调试”=> 假
  • 请启用它并再次检查。你会得到错误。
  • 这里 from 没有发送到控制器,我已经在控制器中调试过,如果我使用 type = file,它就不会从那里发送。它可能是apache权限问题。可能我必须在 htaccess 中做一些事情,但我不知道该怎么做。

标签: cakephp cakephp-3.0 cakephp-3.x


【解决方案1】:

你试过了吗?使用表单选项添加 enctype

<?= $this->Form->create($depositOption,['type'=>'post','enctype' => 'multipart/form-data']) ?>

【讨论】:

  • 这实际上没有任何意义作为答案,因为that's exactly what 'type' =&gt; 'file' does,即它没有改变任何东西。
  • 实际上我知道 type = file 在 post 方法中发送数据,但我给出了这个答案,因为她提到 type='post' 正在工作,但如果她使用 type = 'file' 它就不起作用。所以我认为保持 type = "post" 并在选项中添加 enctype 以便它可以工作。实际上几个月前我遇到了同样的问题。我不知道这段代码对我有用。
  • @AD7six 这个答案对我有用,请查看证据youtube.com/watch?v=ddFTJuQCli4&feature=youtu.be
  • @SatuSultana 只需查看这两个表单的页面源代码。它们要么相同,要么不同(差异将有助于解释为什么一个有效而一个无效)。解决这样的问题而不是实际识别和修复根本原因并不是一个好主意。 Getting Forbidden error when going to edit in live server 也不清楚 show 询问问题时的错误消息,您的视频清楚地显示了一个 apache 错误页面 - 即 CakePHP 不对您的问题负责,而是您的 apache 配置中的某些内容。它不应该需要观看视频才能看到。
  • 我正在运行 cakephp3.6。默认的烘焙表单->创建在我的生产服务器中的编辑表单中不起作用(开发中的一切正常)。改变了它,现在它正在工作。谢谢!
猜你喜欢
  • 2011-11-07
  • 1970-01-01
  • 2012-02-23
  • 2013-11-12
  • 2021-10-03
  • 1970-01-01
  • 2016-09-22
  • 2012-04-21
  • 1970-01-01
相关资源
最近更新 更多