如何在ci中获取发布数据

时间:2018-06-13 17:40:05

标签: php codeigniter codeigniter-3

我想在我的登录功能中打印发布数据,使用$ this-> input-> post [' username'];

我有一个家庭控制器如下:

<?php 
class Home extends CI_Controller{
    public function index(){
        $this->load->view("home/home_view");
    }
    public function Login(){
        echo $this->input->post['username'];
    }
}
?>

但它显示我的结果为null,但是如果我写print_r($_POST)而不是$this->input->post['username']它会向我显示所有数据

这是我的家庭观点代码

<!DOCTYPE html>
<html>
<head>
    <title>Home Page</title>
    <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/css/bootstrap.css">
</head>
<body>
    <div class="col-lg-2"></div>
    <div class="col-lg-8" style="min-height: 500px;box-shadow: 5px 5px 15px #000; margin-top: 50px;">
        <form method="post" action="<?php echo base_url(); ?>index.php/Home/Login">
            <table class="table table-stripped">
                <tr>
                    <th colspan="2">Login form</th>
                </tr>
                <tr>
                    <td>Username</td>
                    <td><input type="text" class="form-control" name="username"></td>
                </tr>
                <tr>
                    <td>Password</td>
                    <td><input type="password" name="password" class="form-control"></td>
                </tr>
                <tr>
                    <th colspan="2"><input type="submit" value="Submit" class="btn btn-primary"></th>
                </tr>
            </table>
        </form>
    </div>
    <div class="col-lg-2"></div>
</body>
</html>

我有自动加载的表单助手和网址助手

2 个答案:

答案 0 :(得分:1)

希望这会对您有所帮助:

使用$this->input->post('username');代替$this->input->post['username']

您的登录功能应如下所示:

public function Login()
{
    /* to print all field name do like this*/
    print_r($this->input->post());

    /* to print a particular field name do like this*/
    echo $this->input->post('username');
    echo $this->input->post('password');
}

以这样的形式使用site_urlbase_url(良好做法):

<form method="post" action="<?php echo site_url('Home/Login'); ?>">
      ........
</form>

了解更多:https://www.codeigniter.com/user_guide/libraries/input.html

答案 1 :(得分:0)

将您的HTML转换为CI表单帮助方式虽然我已更新您的视图文件以供参考,请参阅表单助手[https://www.codeigniter.com/userguide3/helpers/form_helper.html][1]

<!DOCTYPE html>
<html>
<head>
    <title>Home Page</title>
    <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/css/bootstrap.css">
</head>
<body>
    <div class="col-lg-2"></div>
    <div class="col-lg-8" style="min-height: 500px;box-shadow: 5px 5px 15px #000; margin-top: 50px;">
        <?php
        echo form_open('home/login');
        ?>
            <table class="table table-stripped">
                <tr>
                    <th colspan="2">Login form</th>
                </tr>
                <tr>
                    <td>Username</td>
                    <td>
                    <?php
                    $data = array(
        'name'          => 'username',
        'id'            => 'username'
);

echo form_input($data);
                    ?>
                    <input type="text" class="form-control" name="username">

                    </td>
                </tr>
                <tr>
                    <td>Password</td>
                    <td><input type="password" name="password" class="form-control">
                                        <?php
                    $pwd = array(
        'name'          => 'password',
        'id'            => 'password'
);

echo form_password($pwd);
                    ?>
                    </td>
                </tr>
                <tr>

                    <?php echo form_submit('submit', 'Submit'); ?>
                    </th>
                </tr>
            </table>
        <?php echo form_close();?>
    </div>
    <div class="col-lg-2"></div>
</body>
</html>