2016-07-28 10 views
1

die $_POST varyable immer leer in meinem Codeigniter Controller:Globale POST immer leer

Controller/register.php

class Register extends CI_Controller 
{ 

    public function index() 
    { 

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

    } 

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

    } 

} 

views/register.html (Ansicht)

<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> 

That ist mein .htaccess, ich verwende es, um index.php von meiner URL zu entfernen.

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

var_dump($_POST) immer Ausgang array(0) { }, aber $_GET funktioniert gut. Ich bin auf Linux (Arch), mit Apache, Codeigniter 3 und PHP 7.

Entschuldigung für mein Englisch. Danke für alles.

Edit:

$this->input->post() ist zu leer.

+2

Ich wette, dass das CI-Framework den $ _POST abfängt und es in '$ this-> input-> post()' umwandelt. Versuchen Sie 'var_dump ($ this-> input-> post());'. In CI 3 haben Sie die Möglichkeit, '$ _GET' in der Konfigurationsdatei zuzulassen. https://www.codeigniter.com/user_guide/libraries/input.html –

+1

Ich versuchte das vorher, das gleiche Problem. – vaati

+6

@vaati 'Name' Attribute für alle Formularelemente fehlen, das ist Problem –

Antwort

2

Die Hauptursache ist name Attribute aus dem alle form-elements sind

Wie zum Beispiel fehlt: -

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

Es Sie verwirrt zwischen id und name scheint.

name ist das von $_POST aufgenommene Attribut.

+0

Überprüfen Sie auch das Attribut action = "register/user" auf dem Formularelement. Wenn irgendetwas versucht, um einen Endslash zu register/user/hinzuzufügen, wird es die POST-Variablen fallen lassen. – Jim

+0

Ich habe meine Antwort geändert. Ich beantwortete eine andere Frage und tippte einen Teil davon hier ein. – Jim