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标志选择帮助您的答案作为最佳答案