Script de Segurança PHP
25/08/2015
0
Sou novato em PHP. Estou criando um sistema de login com direcionamento para página especifica! O login está pronto, mas totalmente sem segurança... Quando copio o link e colo no navegador, a página abre sem pedir o login... Alguém pode me ajudar?
Segue código:
<?php if(isset($_POST['usuario'])){ $servidor = 'localhost'; //Host $usuario = 'root'; // User $senha = 'vertrigo'; // Senha do User $banco = 'login'; // Nome do BD //Conexao com o BD $pdo = new PDO('mysql:host='.$servidor.';dbname='.$banco,$usuario,$senha); $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //Recupera o Usuario e Senha $usuario = $_POST['usuario']; $senha = $_POST['senha']; try{ //Faz o Select da Pagina No Banco $sql = $pdo->prepare("SELECT `pagina` FROM `tabela_login` WHERE `usuario`= ? AND `senha`= ? LIMIT 1"); $sql->execute(array($usuario,$senha)); if($sql->rowCount() > 0 ){ foreach($sql->fetchAll() as $dados) { //Seleciona a Pagina E Redireciona para a pagina cadastrada no banco $pagina = $dados['pagina']; header('Location:'.$pagina); } }else{ echo 'Usuario ou Senha Incorretos'; } //Se o Usuario e senha Forem Corretos Entra no While }catch(PDOexception $e){ echo 'Ocorreu um Erro Ao Conectar : '.$e->getMessage(); } } ?>
Jonathan Allan
Post mais votado
Mais Posts
26/08/2015
William
if($sql->rowCount() > 0 ){ foreach($sql->fetchAll() as $dados) $_SESSION['validado'] = TRUE; { //Seleciona a Pagina E Redireciona para a pagina cadastrada no banco $pagina = $dados['pagina']; header('Location:'.$pagina); } }else{ $_SESSION['validado'] = FALSE; echo 'Usuario ou Senha Incorretos'; }
O correto:
if($sql->rowCount() > 0 ){ $_SESSION['validado'] = TRUE; foreach($sql->fetchAll() as $dados) { //Seleciona a Pagina E Redireciona para a pagina cadastrada no banco $pagina = $dados['pagina']; header('Location:'.$pagina); } }else{ $_SESSION['validado'] = FALSE; echo 'Usuario ou Senha Incorretos'; }
26/08/2015
Jonathan Allan
if($sql->rowCount() > 0 ){ foreach($sql->fetchAll() as $dados) $_SESSION['validado'] = TRUE; { //Seleciona a Pagina E Redireciona para a pagina cadastrada no banco $pagina = $dados['pagina']; header('Location:'.$pagina); } }else{ $_SESSION['validado'] = FALSE; echo 'Usuario ou Senha Incorretos'; }
O correto:
if($sql->rowCount() > 0 ){ $_SESSION['validado'] = TRUE; foreach($sql->fetchAll() as $dados) { //Seleciona a Pagina E Redireciona para a pagina cadastrada no banco $pagina = $dados['pagina']; header('Location:'.$pagina); } }else{ $_SESSION['validado'] = FALSE; echo 'Usuario ou Senha Incorretos'; }
Fiz a alteração Willian... Mas o problema ainda continua...
26/08/2015
Fabio Santos
26/08/2015
Jonathan Allan
Willian, poderia me explicar como verificar se a SESSION está sendo iniciada? Como disse, sou novato em PHP, estou aprendendo tudo na marra... Agradeço muito...
26/08/2015
William
<?php session_start();
26/08/2015
Marcio Araujo
[url]http://blog.thiagobelem.net/principais-falhas-de-seguranca-no-php/[/url]
Obrigado Márcio Araújo! Esse link ajudou muito!
De nada.
26/08/2015
Jonathan Allan
<?php session_start();
Excelente Willian! Muito obrigado! Deu certo! Vou continuar acompanhando suas postagens! Quero aprender mais sobre PHP! Agora só falta criar um script de logout seguro, para destruir as sessões! vou dar uma pesquisada aqui, pra ver o que consigo! Vlw Willian!
26/08/2015
Fabio Santos
Clique aqui para fazer login e interagir na Comunidade :)