我有以下代码:
MODEL:
function check_account($account_details){
$query = $this->db->get_where('admin', array('username' => $account_details['username'] ,
'password' => $account_details['password']) )->result_array();
if(!empty($query)){
return 'Admin';
}
else{
$query2 = $this->db->get_where('user_mst', array('username' => $account_details['username'],
'password' => $account_details['password']) )->result_array();
if(!empty($query2)){
return 'User';
}
else return FALSE;
}
}
我只发布了我的模型,因为视图只包含用户名和密码的输入字段,而在控制器中它只检索输入的数据并传递给模型中的函数。上面的代码片段是控制器调用的函数。
我只有1个登录页面,它首先检查输入的帐户是否存在于admin表中,如果没有,则检查它是否存在于用户表中。如果输入的帐户不属于2个表,则返回false。
我首先检查了管理员表,因为管理员中的帐户属于少数群体。而在用户中将占大多数帐户。例如,如果我有5个管理员帐户和1000个用户帐户。
不是检查输入的帐户是否是其中1000个中的一个,而是检查它是否属于管理表中的5个。
希望我的解释清楚或至少可以理解。
我的问题是,当我输入说,SampleAccount作为用户名,即使在数据库中它的所有小的大写字母它仍然返回,就好像它是相同的。
SampleAccount(输入)= sampleaccount(数据库) - 不应该在查询中返回。
此外,我想阅读一些专业人士关于如何查看帐户的意见,或者我应该为用户和管理员制作2个登录页面。
答案 0 :(得分:0)
foreach($query as $arr => $result){
if($account_details['username'] == $result['username']){
echo ' equal';
}
else echo ' not equal';
}
如果输入的是UseRname,并且在数据库中它是Username,那么这是理想的。 但是,无论如何,要在查询中添加它吗?
get_where();喜欢限制等。
答案 1 :(得分:-1)
兄弟你犯了1个大错误,但是把它命名为role
检查1用户2管理员
function premission_check($role){
switch($role){
case 1 :
return 'user';
break;
case 2 :
return 'admin';
break;
default :
return 'bad role'
break;
}}