Php 身份验证功能不工作-CodeIgniter
我有下面的代码来验证应用程序的用户身份。我已经能够在系统上注册用户,但在尝试使用正确的详细信息登录后,我的身份验证代码无法将用户重定向到应用程序。该页面仅将用户重定向回登录页面,即使我使用了正确的用户详细信息 控制器Php 身份验证功能不工作-CodeIgniter,php,codeigniter,Php,Codeigniter,我有下面的代码来验证应用程序的用户身份。我已经能够在系统上注册用户,但在尝试使用正确的详细信息登录后,我的身份验证代码无法将用户重定向到应用程序。该页面仅将用户重定向回登录页面,即使我使用了正确的用户详细信息 控制器 var $salt = '%&)#$sfsf(abm@009011'; function authenticate() { $username = $this->input->post('username'); $this->db-
var $salt = '%&)#$sfsf(abm@009011';
function authenticate() {
$username = $this->input->post('username');
$this->db->where('phone', $username);
$password = $this->db->where('password', md5(crypt($this->input->post('password'), $this->salt)));
$query = $this->db->get('user_login');
if ($query->num_rows = 1) {
//echo "success";
return true;
} else
return false;
}
我在代码方面还会犯什么错误?
PS:CodeIgniter初学者您分配的不是比较,您应该使用
=
而不是=
if ($query->num_rows == 1) {
}
如果不进行比较,则应使用
=
而不是=
if ($query->num_rows == 1) {
}
不要使用
var
和=
来比较if()
语句中的值
$salt = '%&)#$sfsf(abm@009011';
function authenticate() {
$username = $this->input->post('username');
$this->db->where('phone', $username);
$password = $this->db->where('password', md5(crypt($this->input->post('password'), $this->salt)));
$query = $this->db->get('user_login');
if ($query->num_rows() == 1) {
//echo "success";
return true;
} else
return false;
}
不要使用
var
和=
来比较if()
语句中的值
$salt = '%&)#$sfsf(abm@009011';
function authenticate() {
$username = $this->input->post('username');
$this->db->where('phone', $username);
$password = $this->db->where('password', md5(crypt($this->input->post('password'), $this->salt)));
$query = $this->db->get('user_login');
if ($query->num_rows() == 1) {
//echo "success";
return true;
} else
return false;
}
好的..谢谢,但我仍然无法重定向到应用程序。它将我重定向回登录页面打印查询,并检查所有事情是否按照您的预期进行。当我打印
query
时,我不会返回任何结果,但当我在if()之前回显$query->num_rows
时,我会得到1
statement好的..谢谢,但我仍然无法重定向到应用程序中。它将我重定向回登录页面打印查询,并检查所有事情是否按照您的预期进行。当我打印query
时,我不会返回任何结果,但当我在if()之前回显$query->num_rows
时,我会得到1
statement好的..谢谢,但我仍然无法重定向到应用程序中。它将我重定向回登录页面在if()
语句之前,这个echo$query->num_rows
的结果是什么?结果是1
@RoboPHP它应该是$query->num_rows()
而不是$query->num_rows
好的,如果你直接发布数据,我的意思是,您不是从ajax调用函数,那么您可以使用:redirect(‘您的控制器名称’)而不是returntrue语句;好的..谢谢,但我仍然无法重定向到应用程序。它将我重定向回登录页面在if()
语句之前,这个echo$query->num_rows
的结果是什么?结果是1
@RoboPHP它应该是$query->num_rows()
而不是$query->num_rows
好的,如果你直接发布数据,我的意思是,您不是从ajax调用函数,那么您可以使用:redirect(‘您的控制器名称’)而不是returntrue语句;在没有看到更多代码的情况下很难判断错误(除了使用赋值运算符而不是比较运算符)。您只是返回了一个真/假值,但我们不知道您之后在用它做什么。您是否正在生成包含登录用户数据的会话?您的控制器是否检查数据以“决定”是否允许您访问其方法?另外,我强烈建议更改您选择的密码散列的非常不安全的方式(使用password_散列而不是crypt+md5+static salt,这实际上是非常不安全的),在看不到更多代码的情况下很难判断错误(除了使用赋值运算符而不是比较运算符)。您只是返回了一个真/假值,但我们不知道您之后在用它做什么。您是否正在生成包含登录用户数据的会话?您的控制器是否检查数据以“决定”是否允许您访问其方法?另外,我强烈建议您改变散列密码的非常不安全的方式(使用password_散列而不是crypt+md5+静态salt,这实际上是非常不安全的)