【问题标题】:CodeIgniter : error 403 after submit formCodeIgniter:提交表单后出现错误 403
【发布时间】:2018-05-15 17:19:25
【问题描述】:

当我尝试使用base_url() 方法发送我的表单时(所以我点击提交按钮),而不是我的请求结果,我在另一个页面(禁止访问)上出现 403 错误,在我的控制器生成的页面。

我使用 Wampp 服务器,CodeIgniter 的 3.1.8 版本。我还在自动加载文件中添加了url

我有 .htacess 文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

查看页面:

<!DOCTYPE html>
<html>

<head>
</head>

<body>
    <form method="post" action="<? echo base_url();?>form_validation">
        <label> Name </label>
        <input type="text" name="name" />
        <input type="submit" name="submit" value="submit" />
    </form>
</body>

</html>

你能帮帮我吗?非常感谢

【问题讨论】:

标签: php codeigniter codeigniter-3


【解决方案1】:

希望对您有所帮助:

注意:假设route.php 中的默认控制器是welcome,如果不是用你的替换welcome

在控制器中:你有方法 form_validation 并且你只在表单中给出validation

public function form_validation()
{
   echo 'OK';
}

你的表单视图是这样的:

替换

/* note missing php error in action*/

<form method="post" action="<? echo base_url();?>form_validation">

/*add controller name also in action, 
  assuming your default controller is Welcome*/

<form method="post" action="<?php echo base_url('welcome/form_validation');?>">

视图应该是这样的:

<form method="post" action="<?php echo base_url('welcome/form_validation');?>">
     <label> Name </label>
     <input type="text" name="name" />
     <input type="submit" name="submit" value="submit" />
</form>

route.php 应该是这样的:

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

还请注意.htaccess 应该在项目文件夹中,在您的情况下为 CI 文件夹

【讨论】:

  • 查看我的答案并根据您的答案更正您的答案,顺便说一下您的控制器名称是什么
  • 它一定会解决你的问题,就像我的回答一样
  • 它有效,谢谢:)。你能解释一下为什么吗?如果我想在默认控制器以外的其他控制器上发送视图,我应该怎么做?我只需要用控制器名称替换 Welcome 吗?
  • 只需在其中创建控制器和方法,并在表单动作中传递控制器名称和方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
  • 2011-01-06
  • 1970-01-01
  • 2012-05-03
  • 2016-07-23
  • 2014-08-14
相关资源
最近更新 更多