Quentin Geenens ответ правильный, измените свою функцию проверки:
public function Verify($usuario, $contrasena) {
try {
$sql = "SELECT * FROM usuarios WHERE usuario = ? AND contrasena = ?";
$stm = $this->pdo->prepare($sql);
$stm->execute(array($usuario, $contrasena));
$UsuarioDatos = $stm->fetch(PDO::FETCH_OBJ);
if ($UsuarioDatos == NULL) {
return FALSE;
} else {
return TRUE;
}
} catch (Exception $ex) {
die($ex->getMessage());
}
}
на это:
public function Verify($usuario, $contrasena) {
try {
$sql = "SELECT * FROM usuarios WHERE usuario = ? AND contrasena = ?";
$stm = $this->pdo->prepare($sql);
$stm->execute(array($usuario, $contrasena));
$UsuarioDatos = $stm->fetch(PDO::FETCH_OBJ);
if ($UsuarioDatos == NULL) {
return FALSE;
} else {
return $UsuarioDatos;
}
} catch (Exception $ex) {
die($ex->getMessage());
}
}
если $ UsuarioDatos не равен NULL, он возвращает результат запроса.
затем измените вашу функцию аутентификации:
public function Authenticate() {
$usuario = $_REQUEST['usuario'];
$contrasena = ($_REQUEST[('contrasena')]);
$validar = $this->model->Verify($usuario, $contrasena);
if ($validar) {
$_SESSION['usuario']=$usuario;
$_SESSION['idCategoriaUsu']=$validar['idCategoriaUsu'];
$_SESSION['Iniciada']='true';
if($_SESSION['idCategoriaUsu'] == 1){
header('Location:index.php?c=Home');
}
else {
header('Location:index.php?c=ClienteNormal');
}
} else {
header('Location: index.php?c=Login&error=true');
}
}
на это:
public function Authenticate() {
$usuario = $_REQUEST['usuario'];
$contrasena = ($_REQUEST[('contrasena')]);
$validar = $this->model->Verify($usuario, $contrasena);
if ($validar === FALSE) {
header('Location: index.php?c=Login&error=true');
} else {
$_SESSION['usuario'] = $usuario;
$_SESSION['idCategoriaUsu'] = $validar['idCategoriaUsu'];
$_SESSION['Iniciada']='true';
if($_SESSION['idCategoriaUsu'] == 1){
header('Location:index.php?c=Home');
}
else {
header('Location:index.php?c=ClienteNormal');
}
}
}
Надеюсь, этот ответ поможет вам