Ir para conteúdo

Arquivado

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

Fabyo

Sistema de Login

Recommended Posts

Bom dia gente,

tentem mudar a parte

$re	= mysql_query("select count(*) as total from usuarios where nome = '$nome' and senha =
md5('$senha')");

		//referencia: http://www.php.net/md5 e http://www.php.net/mysql_result
		$total = mysql_result($re, 0, "total");
		mysql_close();
	   
		/* se o total for diferente de 1 é porque o usuario nao esta cadastrado usando dessa forma o resultado esperado sempre sera 1 porque você precisa tbm criar um sistema de cadastros que deixe apenas um usuario ser cadastrado evitando usuarios repetidos */
		if($total != 1)

Para:

 

$re	= mysql_query("select * from usuarios where nome = '$nome' and senha = md5('$senha')");
		$total = mysql_num_rows($re);

		if($total == 0) // Aqui q esta a jogada... tem que ser igual a zero p/ voltar ao login. Do jeito que estava, mesmo achando alguém iria voltar para a página de login!

Compartilhar este post


Link para o post
Compartilhar em outros sites

logout.php

<?php
session_start();
session_unregister($_SESSION["dados"]); 
session_unset($_SESSION["dados"]); 
session_destroy();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo, gostei de todo seu sistema e queria explicações básicas sobre.

 

O quanto é seguro seu script? quero usar em algo que não é tão grave assim, mas quero segurança claro, para evitar empecilhos bobos.

 

A função SERIALIZE faz oq? não entendo bem ela.

 

Po que usar unset ao invés de session_unset? (simples desuso ou tem motivos de segurança?);

 

para tratar de várias variáveis dentro de uma sessão, uso $session_['var1']; $session_['var2']; $session_['varN']; ou existe algum modo de fazer com q minha variável fique dentro da sessão sem maiores problemas?

 

E por fim

$nome = isset($_POST["nome"]) ? anti_injection($_POST["nome"]) : "";

 

não entendo direito o uso desse ponto de interrogação na variável acima, e essa é uma dúvida antiga.

 

Eu sou iniciante em php, por isso tantas dúvidas, espero que tenha paciência de responder todas hehehe..

 

Ótimo sistema, obrigado por enquanto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Meu Primeiro Post! ^^

 

Estou achando o seu script excelente cara, ta de parabéns assim como outros diversos artigos seus que vi por ai! Só que estou com uma questão aqui, estou querendo utilizar o seu sistema de login, direto a minha pagina principal, para quando o usuário estiver logado e ter permissão aparecer alguns itens a mais no menu, então a pagina seria parcialmente restrita!

 

Teria como tu me dizer se tem como, fazer essa interação junto ao seu sistema, se tiver pode deria dar alguma instrução inicial de como eu poderia aplicar!

 

OBS.: Desculpe as perguntas, provavelmente iniciantes, é que fiquei muito tempo fora do PHP, ai estou voltando, então estou reaprendendo as coisas, principalmente do PHP5!

 

Desde já agradeço!

 

DeToneS

Compartilhar este post


Link para o post
Compartilhar em outros sites

To acabando um sistema completo e dai vou postar aqui

Olá Fabyo, mais uma coisa, tem alguma novidade, sobre esse sistema que você comentou!

 

E outra coisa, não consegui compreender que tipo de arquivo é oque esta no zip. Não consigo abrir ele!

 

Mais de qualquer forma, parabéns novamente pelo script!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa sobre o sistema completo eu ja postei aqui, é um sistema de cadastro

 

e sobre sua duvida da sim para implementar facil na sua pagina principal

Opa Fabyo, o sistema é aquele login.zip, que você postou ou o está em outro tópico! Mais de qualquer forma já achei bem interessante, oque baixei, claro que depois de ter me matado um pouco pra descobrir que o arquivo dentro do zip tb tinha extensão .zip ^^!

 

De Qualquer forma, consegui dar um rumo para oque eu queria montar, no caso da págnia principal, utilizei os dados da sessão apenas, para gerir os dados que eu precisava! ^^

 

E novamente digo, excelente sistema!

 

Abraços!

 

OBS: Coisas que demorei um pouco para descrobir! ^^

1 - O Arquivo zip tem outro zip dentro

2 - A chave é uma junção do nome em MD5 somado a senha em MD5, depois ambos os codigo MD5 unidados e novamente criptografados ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo, sem querer parecer um chato, mas eu comecei a aprender php e mysql fazem uns 4 dias.... e estou com serias dificuldades em algumas coisas... eh complicado aprender sozinho...

 

mas ai vai minha duvida:

pra que serve essa chave ?

$chave = md5( md5(strtolower(trim($nome))) . md5(strtolower(trim($senha))) );

 

e que tipo de valor eu devo atribuir a ela ?

por exemplo, criei la no meu banco de dados um usuario com id 1, uma senha em MD5, um e-mail, nivel de acesso 2, e não sei o que por na chave !!!!

o que devo por ? e depois que por alguma coisa, ela tem que ser colocada em MD5 tbm ?

 

pode me explicar melhor o que eh essa chave ?

 

o erro que me esta aparecendo eh apenas o de login e senha invalidos... isso eh porcausa da $chave ? pois quando eu comento essa linha, o login funciona normalmente, ou eh por outra coisa que eu tbm não entendi como fazer ?

 

aguardo resposta,

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo, sem querer parecer um chato, mas eu comecei a aprender php e mysql fazem uns 4 dias.... e estou com serias dificuldades em algumas coisas... eh complicado aprender sozinho...

 

mas ai vai minha duvida:

pra que serve essa chave ?

$chave = md5( md5(strtolower(trim($nome))) . md5(strtolower(trim($senha))) );

 

e que tipo de valor eu devo atribuir a ela ?

por exemplo, criei la no meu banco de dados um usuario com id 1, uma senha em MD5, um e-mail, nivel de acesso 2, e não sei o que por na chave !!!!

o que devo por ? e depois que por alguma coisa, ela tem que ser colocada em MD5 tbm ?

 

pode me explicar melhor o que eh essa chave ?

 

o erro que me esta aparecendo eh apenas o de login e senha invalidos... isso eh porcausa da $chave ? pois quando eu comento essa linha, o login funciona normalmente, ou eh por outra coisa que eu tbm não entendi como fazer ?

 

aguardo resposta,

obrigado.

Ele usa uma have de verificação que no caso executa "md5(strtolower(trim($nome)))" ele pega o nome do usuário e remove letras maiusculas e criptografa em MD5 depois executa coisa na senha do usuario "md5(strtolower(trim($senha)))" em seguida ele une ambos e gera uma unica cache unico os dois valores MD5 e criptografa em MD5 novamente "$chave = md5( md5(strtolower(trim($nome))) . md5(strtolower(trim($senha))) );" assim gerando a chave de verificação.

 

Espero ter ajudado a compreender!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

uhm, certo ! acho que eu entendi mais ou menos como funciona...

soh que você consegue fazer isso funcionar ??

 

eu não sei cadastrar um usuario nesse esquema, acho que estou fazendo alguma coisa errada, não sei...

o que devo por na chave la no banco de dados ?

 

obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma dica a senha gerada em MD5 gera uma chave de 32 caracteres entao veja no seu campo qual tamanho você definiu pra ele

 

por padrao deixe char(32)

 

e se continua dando usuario ou senha invalido, você ta errando em algum lugar, por exemplo você precisa antes de logar ja ter um usuario cadastrado no banco

com a chave MD5

Compartilhar este post


Link para o post
Compartilhar em outros sites

uhm, certo ! acho que eu entendi mais ou menos como funciona...

soh que você consegue fazer isso funcionar ??

 

eu não sei cadastrar um usuario nesse esquema, acho que estou fazendo alguma coisa errada, não sei...

o que devo por na chave la no banco de dados ?

 

obrigado!

Da uma olhada nos posts anteriores tem alguns scripts de cadastro que os membros desenvolveram!

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou postar o meu cadastro no banco de dados, assim, acho que fica melhor pra entender qual esta sendo o problema

 

Imagem PostadaImagem Postada

 

 

e aqui vai o php :

 

** Se eu comentar a linha $chave = md5( md5(strtolower(trim($nome))) . md5(strtolower(trim($senha))) ); o login funciona normalmente... mas com ela fica dando erro de login... acredito que deve ser um problema no cadastro do usuario no banco de dados, poderiam verificar pra mim se eh isso mesmo ?

 

<?php

$erro = "";

if(getenv("REQUEST_METHOD") == "POST") {

	$nome  = $_POST["nome"];
	$senha = $_POST["senha"];

	if ( get_magic_quotes_gpc() ) {
		$nome  = stripslashes($_POST["nome"]);
		$senha = stripslashes($_POST["senha"]);
	}
	$nome  = mysql_escape_string($nome);
	$senha = mysql_escape_string($senha);
	
	
	$chave = md5( md5(strtolower(trim($nome))) . md5(strtolower(trim($senha))) );	
	$senha = md5($senha);
	//coloque seus dados de conexao
	mysql_connect("localhost", "root", "");
	mysql_select_db("login2");
	
	$sql   = "SELECT COUNT(*) AS total FROM usuarios WHERE nome = '%s' AND senha = '%s' and chave = '$chave' and nivel_acesso > 0";		
	
	$re	= mysql_query(sprintf($sql, $nome, $senha));
	$total = mysql_result($re, 0, "total");
	mysql_close();
	
	if($total == 1) {
		$dados = array();
		$dados["nome"]	 = ucfirst(strtolower($nome));
		$dados["logado"]   = true;
		session_start();
		$_SESSION["dados"] = $dados;
		header("Location: principal.php");
	} else {
		$erro  = "Usuario ou senha invalido";
		$erro .= "<script type=\"text/javascript\">document.getElementById(\"erro\").className = 'visivel';</script>";
	}
}

?>
<html>
<head>
	<title>Login</title>
	<meta name="language" content="pt-br" />
	<meta http-equiv="Content-Type"  content="text/html; charset=iso-8859-1" />
	<meta http-equiv="pragma" content="no-cache" />
	<meta http-equiv="imagetoolbar" content="no" />
	<meta name="author" content="Fabyo" />
	<style type="text/css" media="screen">
		@import url("css/main.css");
	</style>
	<script src="js/funcoes.js" type="text/javascript"></script>
</head>

<body>
	<div id="js" class="visivel"><h2>Habilite o JavasCript</h2></div>
	<div id="erro" class="invisivel"><h2><?php echo $erro;?></h2></div>
	<fieldset>
		<form id="formulario" name="formulario" action="login.php" method="post" >
			<label for="Nome">Nome</label>
			<input type="text" id="Nome" name="Nome" /><br />
			<label for="Senha">Senha</label>
			<input type="password" id="Senha" name="Senha" /><br />			
			<input type="submit" id="BotaoLogin" name="BotaoLogin" value="Entrar" />
		</form>
	</fieldset>
</body>
</html>

se conseguirem me ajudar, eu ficaria muito grato!

o pior de tudo, eh que deve ser um problema muito bobo, mais pela minha falta de experiencia, complica tudo

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta me retornando essa linha :

 

SELECT COUNT(*) AS total FROM usuarios WHERE nome = '%s' AND senha = '%s' and chave = '020eb29b524d7ba672d9d48bc72db455' and nivel_acesso > 0

 

 

tem alguma ideia ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O valor do campo chave é oque voce deve incluir dentro do campo CHAVE do usuário!

No caso 020eb29b524d7ba672d9d48bc72db455

 

Essa é a chave com base no nome do usuário e a senha!

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz isso, e continua dando o mesmo erro....

sera que tem alguma coisa a ver com algum tipo de java script ? ou alguma coisa do tipo ?

ao que parece ele não esta autenticando a senha

 

criei 2 usuarios diferentes, como puderam ver na imagem, e ambos retornaram o mesmo numero chave 020eb29b524d7ba672d9d48bc72db455

isso não eh normal, é ?

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.