我正在使用CodeIgniter并且在使用时发送变量存在问题 的 $这 - >负载>查看( '注册',$数据)即可。
这是我控制器中的一些代码。
function create_member()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]');
$this->form_validation->set_rules('password1', 'Confirm Password', 'trim|required|matches[password]');
if($this->form_validation->run() == FALSE)
{
$this->load->view('signup');
}else
{
$this->load->model('membership');
if($query=$this->membership->check_username() == TRUE)
{
$data['msg']= "Username exist";
$this->load->view('signup',$data); //problem encounter here.
}else
{
if($query = $this->membership->create_member())
{
$data['main_content'] = 'signup_successful';
$this->load->view('include/template', $data);
}else
{
$this->load->view('signup_form');
}
}
}
}
这里出现错误信息:
遇到了PHP错误
严重性:通知
消息:未定义的变量:msg
文件名:views / signup.php
行号:99
<?php echo $msg; ?> // code inside view/signup.php
答案 0 :(得分:1)
这可能是因为你的代码进入了这个区域而你没有在这里设置$data['msg']
所以在视图中它不存在。:
else
{
if($query = $this->membership->create_member())
{
$data['main_content'] = 'signup_successful';
$this->load->view('include/template', $data);
}else
{
$this->load->view('signup_form');
}
}
在方法的开头将$data['msg']
初始化为null,或者在视图中检查它是否存在。
答案 1 :(得分:0)
if($this->form_validation->run() == FALSE)
{
$this->load->view('signup');
}
您在不传递任何变量的情况下加载视图,因此不会设置$msg
。
您需要将isset($msg)
添加到视图(或$data['msg'] = ''
添加到控制器。