Olá a todos, o sistema de login que estou trabalhando é em cima de um que peguei meio que pronto e tive que modificar conforme as minhas necessidade, porém tem um erro serio, é assim, a pessoa tem que logar com numero de matricula e senha, se eu colocar numero de matricula e senha diferente não loga, ate ai tudo bem, mas se eu digito uma letra a pessoa loga normal para a conta principal, e isso não pode acontecer. podem me dar uma ajuda?
segue uma esquema do codigo, que é de teste.
aqui a pagina de login.php
<?php
session_start();
// se já existir um usuário logado
if (isset($_SESSION['user'])) {
// volta pro index
header('Location: ./');
} elseif (isset($_POST['login'])) {
// conecta ao banco de dados
include 'app/models/connect.php';
// conecta ao banco de dados
include 'app/models/model.php';
// criar a query de busca
$query = "SELECT * FROM usuarios
WHERE status = 1
AND matricula ='$_POST[login]'
AND senha = MD5('$_POST[senha]')";
// executar a query
if (is_array($result = returnArray($query))) {
$_SESSION['user'] = $result[0];
header('Location: ./');
} else {
$e = "<p class='error'>$result</p>";
}
}
?>
Pergunta
joannes
Olá a todos, o sistema de login que estou trabalhando é em cima de um que peguei meio que pronto e tive que modificar conforme as minhas necessidade, porém tem um erro serio, é assim, a pessoa tem que logar com numero de matricula e senha, se eu colocar numero de matricula e senha diferente não loga, ate ai tudo bem, mas se eu digito uma letra a pessoa loga normal para a conta principal, e isso não pode acontecer. podem me dar uma ajuda?
segue uma esquema do codigo, que é de teste.
aqui a pagina de login.php
<?php
session_start();
// se já existir um usuário logado
if (isset($_SESSION['user'])) {
// volta pro index
header('Location: ./');
} elseif (isset($_POST['login'])) {
// conecta ao banco de dados
include 'app/models/connect.php';
// conecta ao banco de dados
include 'app/models/model.php';
// criar a query de busca
$query = "SELECT * FROM usuarios
WHERE status = 1
AND matricula ='$_POST[login]'
AND senha = MD5('$_POST[senha]')";
// executar a query
if (is_array($result = returnArray($query))) {
$_SESSION['user'] = $result[0];
header('Location: ./');
} else {
$e = "<p class='error'>$result</p>";
}
}
?>
<form method="POST" action="valida.php">
<table>
<tr>
<td>
<img src="assets/imgs/logo.png">
</td>
<td><h1>Sistema de Gestão<br><b>Patrimonial do DEP</b></h1></a></td>
</tr>
<tr>
<td colspan='2'>
<input type="text" name="txt_usuario" id="txt_usuario" class="form-control" placeholder="login" required autofocus>
<br><br>
<input type="password" name="txt_senha" id="txt_senha" class="form-control" placeholder="Senha" required>
<br><br>
<input type='submit' value='logar'>
<?php if(isset($_SESSION['loginErro']))
{
echo $_SESSION['loginErro'];
unset ($_SESSION['loginErro']);
}
?>
</tr>
</table>
</form>
---------------------
seguranca.php
<?php
function seguranca_adm(){
if((empty($_SESSION['usuarioId'])) && (empty($_SESSION['usuarioMatricula'])) && (empty($_SESSION['usuarioNiveisAcessoId']))){
$_SESSION['loginErro'] = "Área restrita";
header("Location: login.php");
}else{
if($_SESSION['usuarioNiveisAcessoId'] != "1"){
$_SESSION['loginErro'] = "Área restrita";
header("Location: login.php");
}
}
}
?>
-------------------------------------
valida.php // pega os dados vindo do login
session_start();
include_once("conexao/conexao.php");
//Verifica se os campos possuem dados
if((isset($_POST['txt_usuario']) == ['txt_usuario'] ) && (isset($_POST['txt_senha']))){
$usuario = mysqli_real_escape_string($conn, $_POST['txt_usuario']); //Escapar de caracteres especiais, como aspas, prevenindo SQL injection
$senha = mysqli_real_escape_string($conn, $_POST['txt_senha']);
//$senha = md5($senha);
//$senha = hash('sha512','$senha');
$senha = $senha;
$result_usuario = "SELECT * FROM usuarios WHERE matricula = '$usuario' && senha = '$senha'";
$resultado_usuario = mysqli_query($conn, $result_usuario);
$resultado = mysqli_fetch_assoc($resultado_usuario);
//Encontrando um usuário na tabela usuario com os mesmos dados digitado pelo usuario
if(isset($resultado)){
$_SESSION['usuarioId'] = $resultado['id'];
$_SESSION['usuarioNome'] = $resultado['nome'];
$_SESSION['usuarioNiveisAcessoId'] = $resultado['niveis_acesso_id'];
$_SESSION['usuarioMatricula'] = $resultado['matricula'];
if($_SESSION['usuarioNiveisAcessoId'] == "1"){
header("Location: adm.php");
}elseif($_SESSION['usuarioNiveisAcessoId'] == "2"){
header("Location: pagi_moderador/moderad.php");
}elseif($_SESSION['usuarioNiveisAcessoId'] == "3"){
header("Location: user_comum/user.php");
}else{
$_SESSION['loginErro'] = "Erro - Entre em contato suporte@suporte.com.br";
header("Location: login.php");
}
}else{
$_SESSION['loginErro'] = "Usuário ou senha inválido";
header("Location: login.php");
}
}else{
$_SESSION['loginErro'] = "Usuário ou senha inválido";
header("Location: login.php");
}
?>
não sei onde estou errando pois o camp matricula é int e no login aceita letras.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.