Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter:提交表单后出现错误403_Php_Codeigniter_Codeigniter 3 - Fatal编程技术网

Php CodeIgniter:提交表单后出现错误403

Php CodeIgniter:提交表单后出现错误403,php,codeigniter,codeigniter-3,Php,Codeigniter,Codeigniter 3,当我尝试使用base\u url()方法发送表单时(因此我单击submit按钮),而不是请求的结果,我的控制器生成的页面上的另一个页面(禁止访问)出现403错误 我使用Wampp服务器,即CodeIgniter的3.1.8版。我还在自动加载文件中添加了url 我有.htacess文件,其中包含: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule

当我尝试使用
base\u url()
方法发送表单时(因此我单击submit按钮),而不是请求的结果,我的控制器生成的页面上的另一个页面(禁止访问)出现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>


希望这对您有所帮助:

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

在控制器中:您有方法
表单验证
,并且您只提供表单操作
验证

您的表单视图如下所示:

<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['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
更换

/* 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');?>">

注意:.
htaccess
应该在项目文件夹中,在您的案例CI文件夹中

这需要更多的上下文才能回答。您是否在自动加载或控件中加载了url帮助程序?yes:确定在config.php中设置ur base\u url如果不是,请在验证控制器中显示验证控制器methodbase\u url:,我试着展示一些东西(即使在MVC中这不是正确的方式,只是为了测试它是否有效):看看我的答案,然后根据你的答案更正你的答案,顺便问一下,你的控制器名是什么?它肯定会解决你的问题,就像我的答案中那样做,谢谢:)。你能解释一下为什么吗?如果我想在默认控制器之外的其他控制器上发送视图,我应该怎么做?我只需要将welcome替换为控制器名称?只需在其中创建控制器和方法,并使用控制器名称和方法以form action的形式传递它
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;