我开始使用Ion Auth并希望制作自定义登录表单。在用户点击“提交”按钮并且验证消息错误后,我想知道如何在此输入表单中保留并显示当前用户名?我看到这种方法在网站上使用了很多,但我找不到任何显示如何操作的例子。
Ex:在他没有正确密码的情况下......
注意我默认测试该示例,当用户输入错误的密码时,会弹出错误信息,单击“提交”时,他当前的用户名或电子邮件为空白,不会以输入形式存储。
这里更新的是我目前的代码:
控制器
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();?>
答案 0 :(得分:0)
如果set_value()
为false,您将使用form_validation
来保留值,CodeIgniter将保留这些值。
示例:强>
<input type="text"
name="quantity"
value="<?php echo set_value('quantity', '0'); ?>"
size="50" />
参考: http://codeigniter.com/user_guide/helpers/form_helper.html