表单提交返回空数据

时间:2014-11-07 07:12:39

标签: php codeigniter

我正在使用PHP Framework CodeIgniter。

查看

<?php echo form_open('login/connect'); ?>
    <table border="0" cellspacing="0" cellpadding="0">
        <tr>
            <td><?php echo form_label('Username', 'username'); ?></td>
            <td><?php echo form_input(array('id'=>'username', 'name'=>'username')); ?></td>
        </tr>
        <tr>
            <td><?php echo form_label('Password', 'password'); ?></td>
            <td><?php echo form_password(array('id'=>'password', 'name'=>'password')); ?></td>
        </tr>
        <tr>
            <td></td>
            <td><?php echo form_submit('login_submit', 'Valider'); ?></td>
        </tr>
    </table>
<?php echo form_close(); ?>

当我尝试提交此页面时,会转到:http://mywebsite.com/admin/index.php/login/connect

控制器

类Login扩展了CI_Controller {

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

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

function connect()
{
    $username= $this->input->post('username');
    $password=$this->input->post('password');
    echo $username.', '.$password;
}

}

HTML

<div id="login">
    <div id="login-inner">
        <h1>Login</h1>
        <form action="http://myswebsite.com/admin/index.php/login/connect" method="post" accept-charset="utf-8">                    
            <table border="0" cellspacing="0" cellpadding="0">
                <tr>
                    <td><label for="username">Username</label></td>
                    <td><input type="text" name="username" value="" id="username"  /></td>
                </tr>
                <tr>
                    <td><label for="password">Password</label></td>
                    <td><input type="password" name="password" value="" id="password"  /></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" name="login_submit" value="Valider"  /></td>
                </tr>
            </table>
        </form>
    </div>
</div>

但它返回一个空数组。

有人可以建议一种方法来解决这个问题吗?

感谢。

4 个答案:

答案 0 :(得分:0)

我认为他正在使用CodeIgniter,因此form_open()会自动放置method =“post”。请问你能分享表格的输出HTML吗?

检查您是否未重定向请求,否则将重置帖子变量。 尝试使用print_r而不是var_dump ...

答案 1 :(得分:0)

请勿使用$ _POST  尝试使用

$username= $this->input->post('username');
$password=$this->input->post('password');

答案 2 :(得分:0)

确定了问题。 它与网站网址相关,并且在表单提交时有一个不需要的301重定向。 参考:$this->input->post() always returning FALSE, due to an unwanted 301

答案 3 :(得分:0)

在parent :: __ construct();

之后输入以下类
$this->load->helper('url');
$this->load->helper('form');