Php CodeIgniter-如何将阵列从控制器转移到控制器
我写了一些注册页。我想创建一个关于注册成功信息的成功页面。 这是我的控制器Php CodeIgniter-如何将阵列从控制器转移到控制器,php,codeigniter,Php,Codeigniter,我写了一些注册页。我想创建一个关于注册成功信息的成功页面。 这是我的控制器 function register(){ $data['success']=0; $data['error']=0; if($_POST){ $config=array( array( 'field'=>'username', 'label'=>'Login',
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');
}
$data['success']=1;
redirect(base_url().'users/success');
这就是我的观点
<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>
$data['success']=1;
redirect(base_url().'users/success');
在视图中,如果success==1,则显示success框。
但我工作不正常。我在用户/成功页面中出现了类似的错误
$data['success']=1;
redirect(base_url().'users/success');
Severity: Notice
Message: Undefined variable: data
Filename: controllers/users.php
Line Number: 99
及
$data['success']=1;
redirect(base_url().'users/success');
我如何才能做到这一点呢?如果成功,请查看成功页面,不要为此制定方法
$data['success']=1;
redirect(base_url().'users/success');
redirect(base_url().'users/success');
=>
$data['success']=1;
redirect(base_url().'users/success');
注:使用$this->input->post('sth')
代替$\u post['sth']
和
Codeigniter建议使用
password\u hash()
可能由bcrypt代替md5,sha,…$data['success']=0代码>在数组中设置索引,但该数组尚未定义;这就是为什么你会收到这些通知。首先创建它(使用$data=array();
;或者将其合并并编写以下内容:
$data['success']=1;
redirect(base_url().'users/success');
$data = array('success' => 0, 'error' => 0);
你必须设置默认的错误值,因为只有当你有错误时才会定义它。我有个问题。当我使用$this->input->post('sth')istead$\u post['sth']什么是正确的if语句?if($this->input->post())?是的,检查请求是否是post的使用if($this->input->post())
另一方面,您不必检查每个post字段是否已设置。(isset($this->input->post('sth'))
不再需要)仅供参考,您可以通过单击左侧的tik标志选择帮助您的答案作为最佳答案