提供所保留域名列表的小型codeigniter项目。 登录页面后,您将被重定向到数据库中的域列表。 运行此页面(doamins列表),没有问题。唯一的问题是当您从登录中调用此页面时。 登录页面没问题(下面是登录控制器)。
public function index(){
$this->load->view('login');
}
public function checklogin()
{
$this->form_validation->set_rules('username','Username','required');
$this->form_validation->set_rules('password','Password','required|callback_verifyUser');
if($this->form_validation->run() == false){
$this->load->view('login');
}else{
$this->load->view('home');
}
}
public function verifyUser(){
$User = $this->input->post('username');
$Pwd = $this->input->post('password');
$this->load->model('Loginmodel');
if($this->Loginmodel->login($User,$Pwd)){
return true;
}else{
$this->form_validation->set_message('verifyUser','Incorrect Login Details');
return false;
}
}
对'home'索引的调用似乎是问题(下面的代码) 主页模型
public function getPosts()
{
$result = array();
$this->db->select('*');
$this->db->from('domains');
$this->db->where('Active','Y');
$this->db->order_by('ExpDate','ASC');
//$query= $this->db->query("select * from baldwin_domains where Active ='Y' order by ExpDate ASC");
$query = $this->db->get();
if($query->num_rows()>0){
return $query->result();
}
}
主页控制器:
public function index()
{
$this ->load->model('Crudmodel');
$records = $this->Crudmodel->getPosts();
$this->load->view('home', ['records' => $records]);
}
删除登录,没有问题所有页面都正常工作。这是错误:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: records
Filename: views/home.php
Line Number: 17
Backtrace:
File: C:\xampp\htdocs\domainsys\application\views\home.php
Line: 17
Function: _error_handler
File: C:\xampp\htdocs\domainsys\application\controllers\Login.php
Line: 15
Function: view
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: views/home.php
Line Number: 17
Backtrace:
File: C:\xampp\htdocs\domainsys\application\views\home.php
Line: 17
Function: _error_handler
File: C:\xampp\htdocs\domainsys\application\controllers\Login.php
Line: 15
Function: view
答案 0 :(得分:0)
问题是当用户输入有效凭据时,您将加载视图home
。但是你没有将任何参数传递给视图。
通过查看家庭控制器,我假设您正在主页上显示帖子列表(Home
视图)。因此,您必须将其重定向到家庭控制器,而不是加载视图。
尝试使用
登录后redirect('home','refresh')
代替$this->load->view('home')
。
public function checklogin()
{
$this->form_validation->set_rules('username', 'Username','required');
$this->form_validation->set_rules ('password','Password','required|callback_verifyUser');
if($this->form_validation->run() == false){
$this->load->view('login');
}else{
redirect('home','refresh');
}
}
重定向将他带到家庭控制器并呈现所需内容。
public function index()
{
$this ->load->model('Crudmodel');
$records = $this->Crudmodel->getPosts();
$this->load->view('home', array('records' => $records));
}