全球POST总是空

问题描述:

$_POST的是varyable总是在我笨控制器空:全球POST总是空

控制器/ Register.php

class Register extends CI_Controller 
{ 

    public function index() 
    { 

     $this->load->view('register.html'); 

    } 

    public function user() 
    { 
     var_dump($_POST); 

    } 

} 

视图/ register.html(视图)

<form method="post" role="form" action="register/user"> 
    <div class="form-group"> 
     <label for="email">Name:</label> 
     <input type="text" class="form-control" id="name"> 
    </div> 
    <div class="form-group"> 
     <label for="email">Email address:</label> 
     <input type="email" class="form-control" id="email"> 
    </div> 

    <div class="form-group"> 
     <label for="pwd">Password:</label> 
     <input type="password" class="form-control" id="pwd"> 
    </div> 

    <div class="checkbox"> 
     <label><input type="checkbox"> Remember me</label> 
    </div> 

    <button type="submit" class="btn btn-default">Submit</button> 
</form> 

即是我的.htaccess,我正在使用它从我的网址中删除index.php

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

var_dump($_POST)总输出array(0) { },但$_GET工作正常。我在Linux(Arch)上,使用Apache,Codeigniter 3和PHP 7.

对不起,我的英文。感谢所有。

编辑:

$this->input->post()是空的了。

+2

我敢打赌,CI框架拦截$ _POST并将其转换为'$ this-> input-> post()'。尝试'var_dump($ this-> input-> post());'。在CI 3中,您可以选择在配置文件中允许“$ _GET”。 https://www.codeigniter.com/user_guide/libraries/input.html –

+1

我曾尝试过,同样的问题。 – vaati

+6

@vaati所有表单元素的'name'属性都缺失,这是问题 –

主要的原因是从所有form-elementsname属性丢失

例如像: -

<input type="text" class="form-control" id="name"> 

看来你idname之间的混淆。

name是由$_POST接收的属性。

+0

还检查表单元素上的action =“register/user”属性。如果有任何尝试重定向以向注册/用户/添加结尾斜杠,则会丢弃POST变量。 – Jim

+0

我改变了我的答案。我正在回答另一个问题,并在此输入部分内容。 – Jim