【问题标题】:How to keep and display the current username in input form?如何在输入表单中保留和显示当前用户名?
【发布时间】:2012-04-27 01:49:44
【问题描述】:

我开始使用 Ion Auth 并想制作一个自定义登录表单。我想知道在用户单击“提交”按钮并且验证消息错误后如何在此输入表单中保留和显示当前用户名?我看到这种方法在网站上被大量使用,但我找不到任何示例来说明如何做到这一点。

例如:在他没有正确密码的情况下......

注意到我默认测试了这个例子,当用户输入错误的密码时,会弹出错误消息,当点击提交时,他当前的用户名或电子邮件是空白的,不会存储在输入表单中。

更新了我当前的代码:

控制器

    public function login() {

    // Validated login form
    $this->form_validation->set_rules('username', 'Username', 'required');
    $this->form_validation->set_rules('password', 'Password', 'required');

    // Get user input form
    $username = $this->input->post('username', TRUE);
    $password = $this->input->post('password', TRUE);

    // If it can't log in
    if ($this->form_validation->run() !== true) {
        $data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message'); 

        $data['username'] = array(  'name'      => 'username', 
                                    'type'      => 'text',
                                    'value'     => set_value('username') ); 

        $data['password'] = array(  'name'  => 'password',
                                    'type'  => 'password' );

        $data['submit'] = array (        'type' => 'submit',
                                    'value' => 'Login' );   

        // Display login page
        $this->load->view('login', $data);
    } else {
        // User success login
        if ($this->ion_auth->login($username, $password)) {
            $this->session->set_flashdata('message', $this->ion_auth->messages());
            redirect($this->config->item('base_url'), 'refresh');               
        } else {
            // Display error
            $this->session->set_flashdata('message', $this->ion_auth->set_error('Invalid username or password.'));

            redirect('auth/login', 'refresh');
        }
    }
}

查看

<div id='login_form'>
<?php echo form_open("auth/login");?>
    <p><?php echo form_input($username);?></p>
    <p><?php echo form_password($password);?></p>

    <div id="message"><?php echo $message;?></div>
    <p id="submit"><?php echo form_submit($submit);?></p>
<?php echo form_close();?>

【问题讨论】:

  • 不要使用$this-&gt;form_validation-&gt;set_value('username'),只使用set_value('username')
  • 我按照你说的做了,但还是不行。当我单击提交时,它不会在输入表单中显示当前用户名。不知道怎么回事……

标签: jquery codeigniter


【解决方案1】:

如果form_validation 为假,您将使用set_value() 保留该值,CodeIgniter 将保留该值。

示例:

<input type="text" 
       name="quantity" 
       value="<?php echo set_value('quantity', '0'); ?>" 
       size="50" />

参考:http://codeigniter.com/user_guide/helpers/form_helper.html

【讨论】:

  • 它不起作用,它仍然给我默认的“用户名”我使用 form_input($username) 代替并定义了一个关联数组......有什么想法吗?
  • 它有效.. 你做得不对:set_value('name of element') 如果你在关联数组中定义了一个ID,它就不一样了,你需要一个名字。验证它们是否匹配并且它将起作用,请参阅我包含的 CI 参考并查看您的代码。
  • 好的,我删除了定义的 ID,但保留定义的名称,即“用户名”。它仍然无法正常工作。这很奇怪!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
  • 2019-08-15
相关资源
最近更新 更多