如何使用sql数据库在php中进行特定于用户的登录?
我编码来检查名称框中键入的前4个字符,并将其与字符串匹配。如果返回true,则检查密码并将我重定向到特定网页,如管理仪表板或主管仪表板。 当我尝试给出“adm_uu”前缀时,我正在使用的代码只会将我重定向到admin dashboard,但当我尝试给出诸如test1或前缀“sup_u”之类的用户名时,它会显示一个空白页面,路径是login.php(我有以下代码的php文件) 我有什么遗漏吗如何使用sql数据库在php中进行特定于用户的登录?,php,authentication,Php,Authentication,我编码来检查名称框中键入的前4个字符,并将其与字符串匹配。如果返回true,则检查密码并将我重定向到特定网页,如管理仪表板或主管仪表板。 当我尝试给出“adm_uu”前缀时,我正在使用的代码只会将我重定向到admin dashboard,但当我尝试给出诸如test1或前缀“sup_u”之类的用户名时,它会显示一个空白页面,路径是login.php(我有以下代码的php文件) 我有什么遗漏吗 <?php define('DIR','../'); require_once DIR .'c
<?php
define('DIR','../');
require_once DIR .'config.php';
$contol = new Controller();
$admin = new Admin();
if (isset($_POST['login_v1']))
{
$name = $_POST['name'];
$password = $_POST['password'];
//string admin1=adm@;
//string sup1=sup@;
//if($name(0,3)=="adm@")
if(preg_match_all('/^adm_/', $name, $matches))
{
$stmt=$admin->ret("SELECT name, password FROM `admine`where name='$name'and password='$password'");
$row=$stmt->fetch(PDO::FETCH_ASSOC);
$num=$stmt->rowCount();
if($num>0){
$_SESSION['name']=$name;
$admin->redirect('../admintemp/index');
}
//if($name(0,3)=="sup@")
else if(preg_match_all('/^sup_/', $name, $matches))
{
$stmt=$super->ret("SELECT name, password FROM `addsuper`where name='$name'and password='$password'");
$row=$stmt->fetch(PDO::FETCH_ASSOC);
$num=$stmt->rowCount();
if($num>0){
$_SESSION['name']=$name;
$admin->redirect('../bs-siminta-SUPER/index');
echo "code works";
}
}
else if($name[0]=="[a-z]" || $name[0]=="[A-Z]")
{
$name = $_POST['name'];
$password = $_POST['pass'];
$stmt=$admin->ret("SELECT * FROM `publicreg` where name='$name'and password='$password'");
$row=$stmt->fetch(PDO::FETCH_ASSOC);
$num=$stmt->rowCount();
if($num>0){
$admin->redirect('../Maxim/user');
}
else
{
echo "please check your username and password";
}
}
}
}
?>
您发布的代码有什么问题?说。即使是这样也不安全!永远不要存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用密码\u hash()
。在散列之前,不需要对它们执行任何操作或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。@Oliver.R该代码会将我重定向到一个新页面。。相反,它会显示一个空白页面。–Jay Blanchard我稍后将对其进行哈希运算。非常感谢你!谢谢你提到这一点。你发布的代码有什么问题?说。即使是这样也不安全!永远不要存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用密码\u hash()
。在散列之前,不需要对它们执行任何操作或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。@Oliver.R该代码会将我重定向到一个新页面。。相反,它会显示一个空白页面。–Jay Blanchard我稍后将对其进行哈希运算。非常感谢你!谢谢你提到这件事。