我写了一些注册页面。我想创建成功页面,注册成功信息。 这是我的控制器
function register(){
$data['success']=0;
$data['error']=0;
if($_POST){
$config=array(
array(
'field'=>'username',
'label'=>'Login',
'rules'=>'trim|required|min_length[3]|max_length[64]|is_unique[users.username]'
),
array(
'field'=>'email',
'label'=>'Adres email',
'rules'=>'trim|required|is_unique[users.email]|valid_email'
),
array(
'field'=>'password',
'label'=>'Hasło',
'rules'=>'trim|required|min_length[3]|max_length[16]'
),
array(
'field'=>'password2',
'label'=>'Potwierdź hasło',
'rules'=>'trim|required|matches[password]'
),
array(
'field'=>'namePTS',
'label'=>'Imie i nazwisko',
'rules'=>'trim|required|max_length[64]'
),
array(
'field'=>'idPTS',
'label'=>'ID postaci',
'rules'=>'trim|required|integer|max_length[10]'
)
);
$this->load->library('form_validation');
$this->form_validation->set_rules($config);
if ($this->form_validation->run() == FALSE){
$data['error']=1;
$data['errors']=validation_errors();
} else {
$data=array(
'username'=>$_POST['username'],
'email'=>$_POST['email'],
'password'=>sha1($_POST['password']),
'namePTS'=>$_POST['namePTS'],
'idPTS'=>$_POST['idPTS']
);
$this->load->model('user');
$userid=$this->user->create_user($data);
if(!$userid){
$data['success']=1;
redirect(base_url().'users/success');
}
}
}
$this->load->view('startHeader');
$this->load->view('register',$data);
$this->load->view('startFooter');
}
function success(){
$this->load->view('startHeader');
$this->load->view('success',$data);
$this->load->view('startFooter');
}
这是我的观点样本
<div class="login-form">
<?php if($success==1){?>
<!-- BEGIN ERROR BOX -->
<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert">×</button>
<p><b>Success!</b></p>
Registration compleate!.
</div>
<!-- END ERROR BOX -->
<? } ?>
</div>
正如您可以看到$ this-&gt; user-&gt; create_user($ data);没有返回错误
$data['success']=1;
redirect(base_url().'users/success');
并且在视图中我有判断成功== 1显示成功框。 但我的工作不正确。我在用户/成功页面中有这样的错误
Severity: Notice
Message: Undefined variable: data
Filename: controllers/users.php
Line Number: 99
和
Severity: Notice
Message: Undefined variable: success
Filename: views/success.php
Line Number: 16
我怎么能做到这一点?
答案 0 :(得分:1)
如果成功则查看成功页面,不要为此创建方法。
redirect(base_url().'users/success');
=&GT;
$this->load->view('startHeader');
$this->load->view('success',$data);
$this->load->view('startFooter');
PS:使用$this->input->post('sth')
代替$_POST['sth']
和
Codeigniter建议使用password_hash()
或许使用bcrypt代替md5,sha,...
答案 1 :(得分:0)
$data['success']=0;
在array中设置索引,但该数组尚未定义;这就是你收到这些通知的原因。首先创建它(使用$data = array();
;或者将其组合并改为编写:
$data = array('success' => 0, 'error' => 0);