提交后获取帖子值

时间:2014-06-16 07:42:11

标签: php forms codeigniter

有方法POST的表格。

 <form action="<?echo base_url("user/reg_user");?>" name="register" method="post" >

当我点击sumbit时,所有数据都将返回到控制器&#34; user&#34;在我的网址中使用GET方法。

POST阵列是&#34; &#34 ;.

请帮助我了解我的错。

我已经尝试过使用表单助手,但它没有用。只有自动GET数组。

2 个答案:

答案 0 :(得分:0)

CodeIgniter有自己的帮助类来处理表单。你可以在autoload.php中自动加载它或按需加载它。

$this->load->helper('form');

加载帮助程序类后,可以使用 form_open()方法在视图上创建表单。如果您的表单需要上传文件,那么您可以使用 form_open_multipart()

这是一个简单的例子。如果要将登录视图中的用户名和密码发送到用户控制器中编写的登录功能,您可能会创建一个登录表单,如下所示:

echo form_open('user/login');

上面的示例将创建一个表单,指向您的基本网址以及&#34; user / login&#34; URI段,如下所示:

<form method="post" accept-charset="utf-8" action="http:/example.com/index.php/user/login" />

这是一个登录页面(视图)的完整示例。我删除了用于allignments的额外html标签以缩短。

<?php echo form_open(); ?>

<?php echo form_input('name', set_value('name', $user->name)); ?>
<?php echo form_input('email', set_value('email', $user->email)); ?>    
<?php echo form_password('password'); ?>
<?php echo form_password('password_confirm'); ?>
<?php echo form_submit('submit', 'Save'); ?>

<?php echo form_close();?>

用户发送数据后,我们可以从控制器或模型访问它(这取决于您的逻辑)。无论如何以下是我的例子中的登录功能。

public function login ()
{
    $user = $this->get_by(array(
        'email' => $this->input->post('email'),
        // 'password' => $this->input->post('password'),
         'password' => $this->hash($this->input->post('password')),
    ), TRUE);

    if (count($user)) {
        // Log in user
        $data = array(
            'name' => $user->name,
            'email' => $user->email,
            'id' => $user->id,
            'loggedin' => TRUE,
        );
        $this->session->set_userdata($data);
    }
}

所以关键是你可以通过以下方式访问表单发布的数据

$email = $this->input->post('email');

答案 1 :(得分:0)

如果 post方法未正确发送,则会发生此错误。

使用您的开发人员工具检查HTML元素,并确保在任何需要的位置都有引号。

如果您添加HTML代码,我将能够为您提供进一步的帮助。