2016-07-28 7 views
1

$_POST varyable всегда пусто в моем контроллере CodeIgniter:Global 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 из моего URL.

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.

Извините за мой английский. Спасибо за все.

Edit:

$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' для всех элементов формы отсутствуют, это проблема –

ответ

2

Основной причиной этого является name атрибуты из всех form-elements отсутствуют

как, например: -

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

Кажется, вы запутаться между id и name.

name - это атрибут, снятый $_POST.

+0

Также проверьте атрибут action = "register/user" на элементе формы. Если что-либо пытается перенаправить, чтобы добавить конечную косую черту в регистр/пользователь /, она выведет переменные POST. – Jim

+0

Я изменил свой ответ. Я отвечал на другой вопрос и набрал его часть. – Jim

Смежные вопросы