如果检查的管理员登录是正确的,它应该重定向到仪表板页面,但如果管理员登录正确或不正确,它将转到仪表板页面。如果不正确,应该进入登录页面。
这是代码
<?php
class Validate extends CI_Model
{
public function checkdatabase()
{
$username=$_POST['username'];
$password=$_POST['password'];
//echo $username;
$this->load->database();
$query ="select * from adminlogin where name='$username' AND password='$password'";
$value = $this->db->query($query);
$data = $value->result();
return $data;
}
}
?>
这是控制器中的条件
if($value=$this->validate->checkdatabase()){
redirect('dashboard', 'refresh');
}else{
$this->load->view('admin/login');
}
答案 0 :(得分:0)
您可以尝试以下
` $value=$this->validate->checkdatabase(); if(isset($value)){ redirect('dashboard', 'refresh'); }else{ $this->load->view('admin/login'); } `
答案 1 :(得分:0)
你做事的方式确实有点错误,首先在我看来,你不是自动加载数据库库,几乎任何你将要使用的CI网站那个库通常没有意义不让它自动加载。
接下来,正如其他人所说,你根本没有对输入进行消毒,让你自己开放注射,并且考虑到它是一个登录,你已经完全敞开了。 CI的输入包装器为您处理,请参阅下面的代码。
您也没有检查返回值是什么,而登录时您总是检查一次返回。
<?php
class Validate extends CI_Model
{
public function checkdatabase()
{
$username=$this->input->post('username');
$password=$this->input->post('password'); //and honestly this is taking a plain text password... not a good thing.
//echo $username;
$this->load->database(); //again, do this in the autoload.php
$query ="select * from adminlogin where name='$username' AND password='$password'";
$value = $this->db->query($query);
if($value->num_rows()==1)
{
$data = $value->result();
return $data;
} else {
return false;
}
}
我在打字后看到你已经开始工作了,这里仍然有一些你应该考虑的有效点,所以无论如何我都会发布它。