Я кодировал, чтобы проверить первые 4 символа, введенные в поле имени, и сопоставить их со строкой. Если он возвращает true, проверьте пароль и перенаправьте меня на указанную c веб-страницу, например на панель администратора или панель администратора. код, который я использую, только перенаправляет меня на панель администратора, когда я пытаюсь дать префикс "adm_", но когда я пытаюсь что-то еще, например, дать имя пользователя, как test1 или префикс "sup_", он показывает пустую страницу, где путь является логином . php (файл php, где у меня есть следующий код) есть что-то, что я пропускаю?
<?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";
}
}
}
}
?>