2013-02-15 64 views
0

我在Codeigniter中有一個視圖,它是直接用HTML編寫的表單。Codeigniter中的發佈變量

<form action="http://localhost/index.php/cindice/mostrar" mehtod="post"> 
<label for="usuario" id="usr">Usuario</label> 
<input type="text" name="usuario" /><br /><br /> 
<label for="contrasenya" id="ctr">Contrase&ntilde;a</label> 
<input type="password" name="contrasenya" id="ctr" /> 
<label for="acceder"></label><br /><br /> 
<input type="submit" name="acceder" id="bacceder" value="Entrar" /> 
</form> 

該窗體有兩個字段:usuario(用戶)和contraseña(密碼)。

而且它是控制器:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Cindice extends CI_Controller { 


function __construct() { 
    parent::__construct(); 
} 

public function index() 
{ 
    $this->load->view('indice'); 
} 

public function mostrar() 
{ 
    $mostrar=$this->input->post('usuario'); 
    print_r($_POST); 
    echo "<br />"; 

} 

} 
?> 

當我加載頁面本地主機/指數/ cindice和我寫一個用戶名和密碼。但是print_r($ _ POST)命令的結果是array(),這意味着任何值都被保存在表單中。

我該如何解決?

+1

究竟是什麼問題? $ mostrar是否被分配了一個不正確的值? – conor 2013-02-15 12:31:14

+0

在啓動Cpodeigator項目之前,您必須做一些基本配置,請參閱文檔 – Elby 2013-02-15 12:34:16

回答

0

要留意,如果你有CSRF在你的配置接通 - 如果是,那麼你需要使用笨表單輔助和form_open()等等隱藏的安全值被添加。

+0

感謝您的回答。我對CSRF一無所知。我會小心這個。 – axmug 2013-02-18 11:09:57

2

我認爲這是空的,因爲您在開始窗體標記中拼寫了方法屬性錯誤。你已經把

<form action="http://localhost/index.php/cindice/mostrar" mehtod="post"> 

當它應該是

<form action="http://localhost/index.php/cindice/mostrar" method="post"> 
+0

是的。我改變了mehtod的方法,它的工作。謝謝回答。 – axmug 2013-02-18 11:07:55

+0

這是你的問題的正確答案,應該標記爲這樣。 – Benjamin 2013-11-08 09:48:27