vamos direto ao assunto , preciso de um sistema de segurança que , quando você entra em alguma pagina do site sem fazer login, ele te joga direto para a pagina login, uso mysqli e php, achei alguns sistemas mas nenhum funciona com o mysqli, porque ? não sou muito bom com php ainda mas estou na luta
quando clico no botao logar , ele passa pelo arquivo validaacesso.php e redimensiona para a pagina index.php ou se der erro ele retorna na tela
caso esteja tudo ok , na pagina index.php vai ter um chamado para o arquivo acessousuario.php ( este que vai fazer a segurança da pagina ) mas não esta fazendo , entro e saio da pagina sem problema nenhum
me ajudem por favor
conexao.php
<?php // Conexão com o banco de dados $conecta = new mysqli('localhost', 'root', '', 'cad') or die("Error " . mysqli_error($conecta));
?>
validaacesso.php
<?php ob_start(); include '../core/connect/conexao.php';
//Nesse if, faço uma conferência em relação à senha informada. Se não for informada nenhuma, retorno a mensagem para que o usuário informe algo! if ($recebeSenha == NULL ) { echo "<div class='alerta-usuario'> <img class='img-alerta' src='../core/img/erro.png' alt='' width='128' height='128'/> <h5>Digite a senha</h5> <div class='botao-alerta-usuario'><a href='javascript:history.back();'><input type='submit' value='Voltar'></input></a></div></div>"; return false; }
//Aqui faço a segunda parte da verificação: vejo se no nome de usuário foi utilizado algum caractere especial //Isso serve para evitar uma possível invasão sql no banco de dados, possibilitando assim a proteção e integridade dos dados //Nesse caso, eu comparo os nomes. Se forem iguais, após passarem pelos filtros, eu inicio a criptografia. Se não forem, peço que volte à página anterior else if ($confereNomeUsuario != $recebeNomeUsuario) {
echo "<div class='alerta-usuario'> <img class='img-alerta' src='../core/img/erro.png' alt='' width='128' height='128'/> <h5>Você informou o seguinte Nome de Usuário: <strong>$recebeNomeUsuario</strong></h5> <h5>Por favor, não utilize caracteres especiais</h5> <div class='botao-alerta-usuario'><a href='javascript:history.back();'><input type='submit' value='Voltar'></input></a></div></div>"; return false;
} else {
//Aqui vamos criar a função que vai criptografar os dados. //Serão necessários criptografar apenas o endereço de e-mail e a senha informada
//Função para criptografar a senha function criptoSenha($criptoSenha){ return sha1(md5($criptoSenha)); }
//Função para criptografar o e-mail function criptoNomeUsuario($criptoNomeUsuario){ return sha1(md5($criptoNomeUsuario)); }
//Aqui realizo a criptografia do nome de usuário $criptoNomeUsuario = criptoNomeUsuario(filter_input(INPUT_POST, 'nomeUsuario', FILTER_SANITIZE_MAGIC_QUOTES));
//Aqui realizo a criptografia da senha informada do usuário $criptoSenha = criptoSenha(filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_SPECIAL_CHARS));
$consultaInformacoes = mysqli_query($conecta, "SELECT * FROM usuario WHERE userlogin = '$criptoNomeUsuario' AND passlogin = '$criptoSenha' AND ativo = 'sim'") or die (mysqli_error()); $verificaInformacoes = mysqli_num_rows($consultaInformacoes);
//Aqui vou verificar se houve resultado positivo na pesquisa if($verificaInformacoes == 1){
//Aqui eu vou setar os cookies para gravar os dados de acesso do usuário setcookie ("login", $criptoNomeUsuario, (time()+60*60*24*30 )); setcookie ("senha", $criptoSenha, (time()+60*60*24*30 )); setcookie ("nomeUsuario", $confereNomeUsuario, (time()+60*60*24*30 )); header ("Location: index.php");
$confirmacao = mysqli_query($conecta, "SELECT * FROM usuario WHERE userlogin = '$criptoNomeUsuario' and passlogin = '$criptoSenha' and ativo = 'sim'") or die (mysqli_error());
mysqli_query($conecta, "UPDATE usuario SET data_ultimo = now() WHERE id_usuario ='{$idUsuario}'");
}
mysqli_close($conecta);
else { $urlAcesso = "../index.php"; echo " <script type='text/javascript'> alert('Proibido o acesso por esse meio. Volte e informe os dados corretamente. Obrigado e aguarde o redirecionamento para a tela inicial!'); </script>"; echo "<meta http-equiv='refresh' content='1;URL='.$urlAcesso.''>"; }
Pergunta
jonatas alves santos
Boa pessoal
vamos direto ao assunto , preciso de um sistema de segurança que , quando você entra em alguma pagina do site sem fazer login, ele te joga direto para a pagina login, uso mysqli e php, achei alguns sistemas mas nenhum funciona com o mysqli, porque ? não sou muito bom com php ainda mas estou na luta
quando clico no botao logar , ele passa pelo arquivo validaacesso.php e redimensiona para a pagina index.php ou se der erro ele retorna na tela
caso esteja tudo ok , na pagina index.php vai ter um chamado para o arquivo acessousuario.php ( este que vai fazer a segurança da pagina ) mas não esta fazendo , entro e saio da pagina sem problema nenhum
me ajudem por favor
conexao.php
<?php
// Conexão com o banco de dados
$conecta = new mysqli('localhost', 'root', '', 'cad') or die("Error " . mysqli_error($conecta));
?>
validaacesso.php
<?php
ob_start();
include '../core/connect/conexao.php';
?>
<!DOCTYPE HTML>
<html lang="br" class="no-js">
<head>
<meta charset="utf-8">
<title>BluPage</title>
<link rel="stylesheet" href="../css/normalize.css">
<link rel="stylesheet" href="../css/css.css">
</head>
<body>
<section id="cabecalho">
<?php include_once ("../cabecalho.php"); ?>
</section>
<div class="controle-conteudo">
<div class="conteudo-acao-banco">
<!-- Recebendo e gravando os dados -->
<?php
include "../core/connect/conexao.php";
$recebeNomeUsuario = filter_input(INPUT_POST, 'nomeUsuario', FILTER_SANITIZE_SPECIAL_CHARS);
$confereNomeUsuario = filter_input(INPUT_POST, 'nomeUsuario', FILTER_SANITIZE_MAGIC_QUOTES);
$recebeSenha = filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_SPECIAL_CHARS);
//Nesse if, faço uma conferência em relação à senha informada. Se não for informada nenhuma, retorno a mensagem para que o usuário informe algo!
if ($recebeSenha == NULL ) {
echo "<div class='alerta-usuario'>
<img class='img-alerta' src='../core/img/erro.png' alt='' width='128' height='128'/>
<h5>Digite a senha</h5>
<div class='botao-alerta-usuario'><a href='javascript:history.back();'><input type='submit' value='Voltar'></input></a></div></div>";
return false;
}
//Aqui faço a segunda parte da verificação: vejo se no nome de usuário foi utilizado algum caractere especial
//Isso serve para evitar uma possível invasão sql no banco de dados, possibilitando assim a proteção e integridade dos dados
//Nesse caso, eu comparo os nomes. Se forem iguais, após passarem pelos filtros, eu inicio a criptografia. Se não forem, peço que volte à página anterior
else if ($confereNomeUsuario != $recebeNomeUsuario) {
echo "<div class='alerta-usuario'>
<img class='img-alerta' src='../core/img/erro.png' alt='' width='128' height='128'/>
<h5>Você informou o seguinte Nome de Usuário: <strong>$recebeNomeUsuario</strong></h5>
<h5>Por favor, não utilize caracteres especiais</h5>
<div class='botao-alerta-usuario'><a href='javascript:history.back();'><input type='submit' value='Voltar'></input></a></div></div>";
return false;
} else {
//Aqui vamos criar a função que vai criptografar os dados.
//Serão necessários criptografar apenas o endereço de e-mail e a senha informada
//Função para criptografar a senha
function criptoSenha($criptoSenha){
return sha1(md5($criptoSenha));
}
//Função para criptografar o e-mail
function criptoNomeUsuario($criptoNomeUsuario){
return sha1(md5($criptoNomeUsuario));
}
//Aqui realizo a criptografia do nome de usuário
$criptoNomeUsuario = criptoNomeUsuario(filter_input(INPUT_POST, 'nomeUsuario', FILTER_SANITIZE_MAGIC_QUOTES));
//Aqui realizo a criptografia da senha informada do usuário
$criptoSenha = criptoSenha(filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_SPECIAL_CHARS));
$consultaInformacoes = mysqli_query($conecta, "SELECT * FROM usuario WHERE userlogin = '$criptoNomeUsuario' AND passlogin = '$criptoSenha' AND ativo = 'sim'") or die (mysqli_error());
$verificaInformacoes = mysqli_num_rows($consultaInformacoes);
//Aqui vou verificar se houve resultado positivo na pesquisa
if($verificaInformacoes == 1){
//Aqui eu vou setar os cookies para gravar os dados de acesso do usuário
setcookie ("login", $criptoNomeUsuario, (time()+60*60*24*30 ));
setcookie ("senha", $criptoSenha, (time()+60*60*24*30 ));
setcookie ("nomeUsuario", $confereNomeUsuario, (time()+60*60*24*30 ));
header ("Location: index.php");
if (isset($_POST['remember']))
{
setcookie("cookname", $_SESSION['username'], time()+60*60*24*100, "/");
setcookie("cookpass", $_SESSION['password'], time()+60*60*24*100, "/");
}
} else {
echo "<div class='alerta-usuario'>
<img class='img-alerta' src='../core/img/erro.png' alt='' width='128' height='128'/>
<h5>Usuário ou Senha invalido</h5>
<div class='botao-alerta-usuario'><a href='javascript:history.back();'><input type='submit' value='Voltar'></input></a></div></div>";
}
}
?>
</div>
</div>
</body>
</html>
acessousuario.php
<?php
include "conexao.php";
$criptoNomeUsuario = $_COOKIE["login"];
$criptoSenha = $_COOKIE["senha"];
$nomeUsuario = $_COOKIE["nomeUsuario"];
$confirmacao = mysqli_query($conecta, "SELECT * FROM usuario WHERE userlogin = '$criptoNomeUsuario' and passlogin = '$criptoSenha' and ativo = 'sim'") or die (mysqli_error());
$verificaInformacoes = mysqli_num_rows($confirmacao);
if ( $verificaInformacoes == 1 ) {
session_start(); // Inicia a session
$criptoNomeUsuario = $_COOKIE["login"];
$resultado = "SELECT * FROM usuario WHERE userlogin = '$criptoNomeUsuario' AND ativo = 'sim'";
$listaCliente = mysqli_query($conecta, $resultado) or die (mysqli_error());
while ($listagem = mysqli_fetch_array($listaCliente)){
$nomeUsuario = $listagem ["nome"];
$idUsuario = $listagem ["id_usuario"];
$_SESSION['id_usuario'] = $idUsuario;
$_SESSION['nome'] = $nomeUsuario;
mysqli_query($conecta, "UPDATE usuario SET data_ultimo = now() WHERE id_usuario ='{$idUsuario}'");
}
mysqli_close($conecta);
else {
$urlAcesso = "../index.php";
echo "
<script type='text/javascript'>
alert('Proibido o acesso por esse meio. Volte e informe os dados corretamente. Obrigado e aguarde o redirecionamento para a tela inicial!');
</script>";
echo "<meta http-equiv='refresh' content='1;URL='.$urlAcesso.''>";
}
?>
Link para o comentário
Compartilhar em outros sites
1 resposta 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.