testao35 0 Denunciar post Postado Novembro 14, 2014 Olá tudo bein? To com um probleminha aqui... To com um sistema de loguin que ta funcionando bacana, vou descrever como ta o sistema. Aréa de loguin: loguin.php Aréa do usuario: painel.php O meu problema é o seguinte, se eu tiver na pagina loguin.php e for na url e digitar painel.php ele acessa, gostaria de saber alguma forma de permitir acesso apenas para os usuariarios que estiverem logado, alguma dica, sugestão ? Att, Compartilhar este post Link para o post Compartilhar em outros sites
Thiago - Bulfaitelo 6 Denunciar post Postado Novembro 14, 2014 você de alguma maneira deve usar $_SESSION ou $_COOKIE, para validar o usuário logado coreto usa um if para compara o session com o valor no banco caso seja falso ele volta para a pagina de login exemplo: if($_SESSION['id_usuario'] == $id_usuario_banco){ header("Location: loguin.php"); } Qualquer duvida estámos ai Abraço Compartilhar este post Link para o post Compartilhar em outros sites
FreitasMT 29 Denunciar post Postado Novembro 15, 2014 Você deve usar o que o Thiago - Bulfaitelo disse acima mas se não souber usar aprender com um dos links seguintes: https://www.codigofonte.net/dicas/php/124_veja-como-usar-sessions-no-php Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 16, 2014 Primeiro, não é loguin, é login. Um simples erro desse pode reduzir a credibilidade de seu sistema :thumbsup: Sobre a restrição de acesso, normalmente se coloca uma restrição em todo script que só deve ser acessado por usuários logados. Por exemplo, se estiver usando session, pode fazer o seguinte: crie um arquivo verifica.php com este conteúdo: <?php if ( ! isset( $_SESSION ) || ! isset( $_SESSION['logado'] ) || $_SESSION['logado'] != true ) { header( 'Location: login.php' ); } depois, em cada página restrita, basta dar um require no topo <?php require_once 'verifica.php'; // restante do código Compartilhar este post Link para o post Compartilhar em outros sites
testao35 0 Denunciar post Postado Novembro 16, 2014 Primeiro, não é loguin, é login. Um simples erro desse pode reduzir a credibilidade de seu sistema :thumbsup: Sobre a restrição de acesso, normalmente se coloca uma restrição em todo script que só deve ser acessado por usuários logados. Por exemplo, se estiver usando session, pode fazer o seguinte: crie um arquivo verifica.php com este conteúdo: <?php if ( ! isset( $_SESSION ) || ! isset( $_SESSION['logado'] ) || $_SESSION['logado'] != true ) { header( 'Location: login.php' ); } depois, em cada página restrita, basta dar um require no topo <?php require_once 'verifica.php'; // restante do código eu fiz dessa forma, porem quando eu faço o login ele vota pro login.php Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 17, 2014 eu fiz dessa forma, porem quando eu faço o login ele vota pro login.php então fez algo errado. mostre o trecho de código Compartilhar este post Link para o post Compartilhar em outros sites
testao35 0 Denunciar post Postado Novembro 17, 2014 verifica.php <?php if ( ! isset( $_SESSION ) || ! isset( $_SESSION['logado'] ) || $_SESSION['logado'] != true ) { header( 'Location: login.php' ); } painel.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Painel Admninistrativo</title> <link rel="shortcut icon" href="img/favicon.ico"/> <link type="text/css" href="cssadm/styleadm.css" rel="stylesheet"/> </head> <body> <div id="interface" style="display: block;" > <div id="menufix"> <h2>Painel Administrativo</h2> <div class="banner"> <img src="../img/logo1.png" width="182" height="114" /> </div> </div> <div id="submenu"> <p> <?php require_once 'verifica.php'; session_start(); echo "Bem vindo: ".$_SESSION['nome']; ?></p> </div> <div id="menu"> <ul> <li><a href="#">Monitorar seu pet</a></li> <li><a href="#">Carteira de vacinação</a></li> <li><a href="">Agendar serviços</a></li> <li><a href="logout.php">Sair</a></li> </ul> </div> <div id="conteudo" style="padding-top: 0%;"> <div id="dentro_conteudo"> <iframe width="80%" marginheight="0" marginwidth="0" frameborder="0" src="menu.php"> </iframe> </div> </div> <div id="rodape"> </div> </div> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 17, 2014 1. session_start() deve ser sempre a primeira coisa do script. Inclusive antes do require de verifica.php. Não pode haver saídas HTML antes dessa função 2. Onde processa o login? Onde verifica usuário/senha e cria a variável $_SESSION['logado']? Compartilhar este post Link para o post Compartilhar em outros sites
testao35 0 Denunciar post Postado Novembro 17, 2014 Ta ai <html> <head> <title>Untitled</title> </head> <body> <?php require_once("conecta.php"); $usuario=$_POST["txtUser"]; $senha=$_POST["txtSenha"]; $sql = mysql_query(" SELECT U.username, U.nome FROM usuarios U WHERE U.username = '$usuario' AND U.senha = '$senha'") or die("ERRO NO COMANDO SQL"); $row = mysql_num_rows($sql); if (empty($_POST['txtUser']) && ($_POST['txtSenha'])){ echo "<script> location.href='login.php'; alert('Vazio!') ;</script>"; }elseif ($row == 1){ $id = mysql_result($sql, 0, "username"); $nome = mysql_result($sql, 0, "nome"); session_start(); $_SESSION[id] = $id; $_SESSION[nome] = $nome; Header("Location: painel.php"); }else{ echo "<script> location.href='login.php'; alert('Usuário ou senha incorretos!') ;</script>"; } ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 17, 2014 você criou $_SESSION['id'] e $_SESSION'nome'], mas não criou $_SESSION['logado'], que você usa na verifica.php. Por isso sempre redireciona para login PS: use sempre aspas em strings: $_SESSION['id'] em vez de $_SESSION[id] PPS: funções mysql_* estão obsoletas. Use mysqli_* ou PDO (recomendo PDO) Compartilhar este post Link para o post Compartilhar em outros sites
testao35 0 Denunciar post Postado Novembro 17, 2014 fiz o que você falou, porém continua o mesmo problema, ele volta pro login.php tentei assim $_SESSION['id'] = $id; $_SESSION['nome'] = $nome; $_SESSION['logado'] =$logado assim $_SESSION['id'] = $id; $_SESSION['nome'] = $nome; $_SESSION['logado']; To vendo que é um erro besta, que to apanhando p carai. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 17, 2014 Você faz o if verificando se $_SESSION['logado'] é igual a true, certo? Logo, tem criar $_SESSION['logado'] com o valor true: $_SESSION['logado'] = true; Compartilhar este post Link para o post Compartilhar em outros sites
testao35 0 Denunciar post Postado Novembro 17, 2014 Agora ele voltou a fazer o login, só que se eu for pelo link ele acessa também... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 17, 2014 Agora ele voltou a fazer o login, só que se eu for pelo link ele acessa também... Se o usuário estiver logado, poderá acessar diretamente. Está correto. Você quer bloquear acesso direto mesmo se ele estiver logado? Compartilhar este post Link para o post Compartilhar em outros sites
testao35 0 Denunciar post Postado Novembro 17, 2014 Consegui resolver, era pq o meu logout.php não estava destruindo a $_SESSION['LOGADO'], obrigado pela ajuda rs Compartilhar este post Link para o post Compartilhar em outros sites