Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

First

administração

Recommended Posts

Bom gente, eu queria saber como que eu crio um sistema de administração. Uma página que somente administradores possam entrar publicar um sistema de administração de nível 1 a 5.

 

Como que eu faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo pronto, criei o HTML e o CSS da página de login

admin.php - Página que pede usuário e senha.

admintd.php - Página que quando digitar usuário e senha correto é redirecionado para está página.

 

Mais eu não sei fazer o php para obter este efeito pode me ensinar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho melhor você começar por um tutorial

http://blog.thiagobelem.net/criando-um-sistema-de-login-com-php-e-mysql/

 

Boas práticas seria você utilizar o PDO, mas ele já é um pouco mais avançado:

http://blog.thiagobelem.net/criando-um-sistema-de-login-com-php-e-mysql/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom gente, acho que estou conseguindo fiz umas pesquisas e tal...

Só que meu código está dando erro.

lWfTjgU.png

 

mesmo com usuário e senha corretos da mensagem de erro que não existe...

olhe o código

<?php
	try {
		$nome = $_POST['nome'];
		$senha = $_POST['senha'];
		$pdo = new PDO("mysql:host=localhost;bdname=login", "root", "");
		$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
		$sql = $pdo->prepare("SELECT * FROM `usuarios` WHERE nome='$nome AND senha=$senha'");
		$sql->execute();
		$num = $sql->rowCount();
		if($num >0){
			echo "Login efetuado";
		}else{
			echo "Nome de usuário ou Senha invalida";
		}
	}catch(PDOException $erro){
		echo $erro->getMessage();
	}
?>

A linha 15 é está $sql->execute();

 

O'Que devo fazer? está conexão minha esta em PDO?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim mano ver se exibir algum erro.

<?php
$nome = $_POST['nome'];
		$senha = $_POST['senha'];
		try {
		$pdo = new PDO("mysql:host=localhost;bdname=login", "root", "");
		$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
		$sql = $pdo->prepare("SELECT COUNT(*) FROM `usuarios` WHERE nome='$nome AND senha=$senha'");
		$sql->execute();
		if($sql->fetchColumn() > 0){
			echo "Login efetuado";
		}else{
			echo "Nome de usuário ou Senha invalida";
		}
	}catch(PDOException $erro){
		echo $erro->getMessage();
	}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Observe a seguinte linha:

 

mysql:host=localhost;bdname=login

 

Porque você colocou "bdname"? o correto é "dbname"

 

 

Observe a consulta:

SELECT COUNT(*) FROM `usuarios` WHERE nome='$nome AND senha=$senha'

Porque você colocou uma aspas antes de $nome e só fechou depois de senha? mesmo corrigindo estaria inseguro

 

Tente assim:

 

$pdo = new PDO("mysql:host=localhost;dbname=login", "root", "");
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
$sql = $pdo->prepare("SELECT COUNT(*) FROM `usuarios` WHERE nome=? AND senha=?");
$sql->execute(array($nome, $senha));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara muito obrigado, agora quero saber se está conexão é segura e como faço para fazer uma segurança anti sql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra boa prática é você não salvar a senha no banco de dados, mas salvar um hash como md5 ou sha1, no seu exemplo ficaria assim:

 

 

$pdo = new PDO("mysql:host=localhost;dbname=login", "root", "");
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
$sql = $pdo->prepare("SELECT COUNT(*) FROM `usuarios` WHERE nome=? AND senha=?");
$sql->execute(array($nome, sha1($senha)));

 

Supondo que você salvou o SHA1 da senha no banco de dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson, troquei o código para este seu de agora.

Mais me explique mais por favor, sobre md5 e sha1, e também tem como me ensinar a fazer uma segurança anti sql inject?

 

Fico no aguardo da sua resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já está anti sql inject, você pode entender melhor no link abaixo:

http://codigofonte.uol.com.br/artigos/evite-sql-injection-usando-prepared-statements-no-php

 

O que é Sha1, Md5 e Base64?

http://blog.thiagobelem.net/criptografia-no-php-usando-md5-sha1-e-base64/

 

Para guardar senha utilize, por exemplo, o SHA1 ou MD5, NÃO utilize o Base64, pois ele não é de "mão única"

 

No seu exemplo não funcionou porque você não salvou o SHA1 no banco, descubra qual o SHA1 da sua senha e salve no no lugar da sua senha

http://www.sha1-online.com/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infinitamente mais seguro que MD5 ou SHA1, você pode utilizar Blowfish.

https://speakerdeck.com/fnando/seguranca-em-aplicacoes-web

A partir do slide 53.

 

Aliás, vale a pena ver toda a apresentação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson obrigado, está seguro e tudo certo?

Mais agora amigos como o nosso querido amigo Marlon disse mais seguro que MD5 e SHA1 é Blowfish queria saber como posso utilizar este método.

 

Pode me ensinar como fazer? pois não entendi o slider que você mim passou amigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.