嗨,我正在学习代码点火器,我几乎是新手,我有代码点火器验证的问题。我无法弄清楚我做错了什么,请指导我。 目前正在发生的事情是,每当我提交空字段时,我被重定向到同一页面,但当我填充字段时,我被重定向到同一页面,但页面是空白的。 这是我的用户类
class User extends CI_Controller {
function User() {
parent::__construct();
$this->view_data['base_url'] = base_url();
}
function index() {
$this->register();
}
function register() {
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'trim|required|alpha_numeric|min_length[6]');
if ($this->form_validation->run() == false) {
$this->load->view('view_register', $this->view_data);
} else {
$username=$this->input->post('username');
}
}
}
这是我的view_register.php(查看)
<body>
<h1>User Registration</h1>
please fill in following details
<?php
echo form_open(base_url().'user/register');
?>
<?php
$username = array(
'name' => 'username',
'id' => 'username',
'value' => ''
);
$password = array(
'name' => 'password',
'id' => 'password',
'value' => ''
);
$con_password = array(
'name' => 'con_password',
'id' => 'con_password',
'value' => ''
);
$email = array(
'name' => 'email',
'id' => 'email',
'value' => ''
);
?>
<ul>
<li>
<label>Username</label>
<div>
<?php echo form_input($username); ?>
</div>
</li>
</ul>
<ul>
<li>
<label>Email</label>
<div>
<?php echo form_input($email); ?>
</div>
</li>
</ul>
<ul>
<li>
<label>Password</label>
<div>
<?php echo form_password($password); ?>
</div>
</li>
</ul>
<ul>
<li>
<label>Confirm</label>
<div>
<?php echo form_password($con_password); ?>
</div>
</li>
</ul>
<ul>
<li>
<div>
<?php echo form_submit(array('name' => 'register'), 'Register'); ?>
</div>
</li>
</ul>
<?php echo form_close(); ?>
</body>
答案 0 :(得分:1)
因为验证是正确的,所以你没有加载视图,所以CI再次调用该控制器,但什么也没有显示:
function register() {
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'trim|required|alpha_numeric|min_length[6]');
if ($this->form_validation->run() == false)
{
$this->load->view('view_register', $this->view_data);
} else
{
$username=$this->input->post('username');
$this->load->view('success'); // <------ put your view for success here
}
}
此外,您应该使用此代码而不是代码打开表单:
echo form_open('user/register');
它本身就是正确的url(对于site_url()来说是异常的);
尝试在用户名输入下放置echo form_error('username')
以显示验证错误。