Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com Login!


ºBrunoº

Pergunta

Fala ai pessoal, tudo tranquilo com vocês?

Estou tentando fazer uma página de Login, no modo gambiarra mesmo, com o pouco que sei. Entretanto, estou com um problema: Essa pagina de login só funciona com o Último usuário que eu cadastrei, e somente com um, vou deixar o código para darem uma olhada:

login.php

<body>

	<?php session_start();?>
	<div class="centro">

	<p style="margin-top:5px; width: 1343px;">

	<img class="logo" src="../logo2.png"/></p></div>

	<p class="centro" style="margin-top:60px">Seja Bem-Vindo!</p>

	<div style="position:absolute; top:50%; left:41.5%; padding-left:5px; padding-right:5px; padding-top:5px; padding:5px; font-family:Verdana; font-size:14px;">
	<form action="logar.php" method="post">
	<label>Login:</label><br/><input name="login" type="text" maxlength="15" />
	<br/>
	<label>Senha:</label><br/><input name="senha" type="password" />
	<br/>
	<input name="Submit" type="submit" value="Entrar" class="botao" />
	<?php

	$controle = $_SESSION["controle"]; 

	if ($controle == "sim") {
		echo "<br/><br/><br/><div class='message'>Usuario e Senha não coicidem!</div>";
	}
	
	if ($controle == "não") {
		echo "<br/><br/><br/><div class='message'>Digite o Usuário e Senha!</div>";
	}
	
	?>
	</form>
	</div>

</body>

logar.php

<?php
	session_start();

	$login = $_POST['login'];
	$senha = $_POST['senha'];
	
	// ENVIA O LOGIN E SENHA PARA A SEÇÃO PARA SEREM USADOS EM QUALQUER OUTRA PÁGINA //
	$_SESSION['login'] = $login;
	$_SESSION['senha'] = $senha;
	
	include "acessa.php";
	$consulta2 = "Select * from usuarios";
	$sql2 = mysql_query($consulta2);
	while($linha = mysql_fetch_array($sql2)) {
	$usuario = $linha["usuario"];
	$pass = $linha["senha"];
		
	// SE USUARIO E SENHA DIGITADOS FOREM DIFERENTES DOS CADSTRADOS NO BANCO, MOSTRA MENSAGEM DE ERRO: USUÁRIO E SENHA NÃO COICIDEM! //
	if (($login !== $usuario) || ($senha !== $pass)) {
 		$controle = "sim";
 		$_SESSION['controle'] = $controle;
 		header("location:login.php");
 	}
	
	// SE USUÁRIO E SENHA DIGITADOS FOREM OS MESMOS DO BANCO, REDIRECIONA PARA A PÁGINA PRINCIPAL DO SISTEMA //	
	if (($login == $usuario) || ($senha == $pass)) {
 		//$controle = "não";
 		//$_SESSION['controle'] = $controle;
		header("location:http://localhost/bruno/Index/incial.php");
	}
	}
	// SE USUÁRIO E SENHA ESTIVEREM VAZIOS, MOSTRA MENSAGEM DE ERRO: DIGITE O USUÁRIO E A SENHA! //
	if (($login == "") || ($senha == "")){
		$controle = "não";
		$_SESSION['controle'] = $controle;
		header("location:login.php");
	}
?>

Deve haver algo de errado em algum desses scprits... Só loga com o último usuário que cadastrei, o se somente houver um usuario no banco de dados. Alguém poderia dar uma ajuda ai?

Agradeço!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Da forma que você está fazendo, busca todos os usuários do banco.

Melhore sua query, e busque apenas o que tem o nome que foi digitado.

"Select * from usuarios WHERE usuario = '$login' LIMIT 1 ";

 

E há cerca de 4 anos o php.net já recomendava não usar as extensões mysql_* nunca mais, veja:

mysql_.jpg

Link para o comentário
Compartilhar em outros sites

  • 0

Olá!

Conecte assim:

// variáveis para conexão em localhost
    $host = 'localhost';   // define o host do banco de dados
    $user = 'root';            // user do banco de dados
    $password = '';         // senha do banco de dados
    $database = 'scriptBrasil';  // nome do banco de dados

// estabelecer conexão com o mysql
$sqli = new mysqli($host, $user, $password);
// verificar se houve erro na conexão
if ($sqli->connect_error) {
    // se houve erro, mostra erro na tela
    echo "<p>Erro ao Conectar: $sqli->connect_error</p>";
}
// alterar o tipo de codificação da conexão com o banco de dados,  para utf8
if (!$sqli->set_charset('utf8')) {
    echo "<p class='error'>O charset não é utf8: $sqli->error</p>";
}
// selecionar/abrir o banco de dados para trabalhar
if (!$sqli->select_db($database)) {
    // se o banco de dados não for encontrado
    echo "<p class='error'>Banco de dados não encontrado, chefe!</p>";
}

 

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...