Ir ao conteúdo
  • Cadastre-se

Login PhP


Posts recomendados

Bom pessoal estou na reta final do meu curso de técnico em informática e empaquei na página de login do meu site... Basicamente eu uso o php + phpmyadm do Wampserver para poder fazer esse site. No meu banco de dados "bancodedados" tenho dois usuários:

Usuário: Marcos

Senha: 4321

Usuário: Douglas

Senha: 123

Não sei porque mas apenas o usuário "Marcos" consegue realizar o login no site, já o usuário "Douglas" não consegue. Na table o usuário "Marcos" foi cadastrado antes.

Código do config.php:

<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8" /><?php$conecao = mysql_connect('localhost', 'root','') or die ("Não foi possivel conectar-se ao banco de dados");mysql_select_db('bancodedados', $conecao) or die ("Banco de dados não encontrado");?> 

Código do index.php:

<html><head></head><body><div style="background-color:#000; width:1024px; margin-left:auto; margin-right:auto; position:relative; height:100%;"><div style="background-color:#FF0; width:100%; position:relative; height:10%;"></div><div style="background-color:#F85; width:20%; position:relative; height:80%; float:left;"><form method="post" action="loga.php"><input type="text" name="login" placeholder="LOGIN"><input type="password" name="senha" placeholder="SENHA"><input type="submit" value="Logar"></form></div><?php      //só vai incluir a página quando o form tiver sido enviado      if( isset( $_POST['login'] ) ){          require_once("http://localhost:8080/SITE TESTE/Login/loged.php");		  }?><div style="background-color:#75F; width:80%; position:relative; height:80%;float:left;"></div></div></body></html>

Código do loga.php:

<?phprequire_once "config.php";session_start();$senha = $_POST['senha'];$login = $_POST['login'];if($login==""&$senha==""){echo "<script>alert('Insira o nome de Usuario e a Senha!')</script>";echo "<script>window.location.href = 'http://localhost:8080/SITE TESTE/Login/index.php'</script>";}else if($login==""){echo "<script>alert('Insira o nome de Usuario!')</script>";echo "<script>window.location.href = 'http://localhost:8080/SITE TESTE/Login/index.php'</script>";}else if ($senha==""){echo "<script>alert('Insira a senha!')</script>";echo "<script>window.location.href = 'http://localhost:8080/SITE TESTE/Login/index.php'</script>";}else{$data = mysql_query("select * from cadastro");while($resposta = mysql_fetch_array($data)){$usuario = $resposta['nome'];$passw = $resposta['senha'];if($senha==$passw && $login==$usuario){echo "<script>window.location.href = 'http://localhost:8080/SITE TESTE/Login/loged.php'</script>";}else {echo "<script>alert('Usuário e senha incorretos!')</script>";echo "<script>window.location.href = 'http://localhost:8080/SITE TESTE/Login/loga.php'</script>";}}}?>

Código do loged.php:

<?php	require_once "config.php";	$data = mysql_query("select * from cadastro");while($resposta = mysql_fetch_array($data)){$usuario = $resposta['nome'];}?><html><head></head><body><div style="background-color:#0F0; width:1024px; margin-left:auto; margin-right:auto; position:relative; height:100%;"><div style="background-color:#00F; width:100%; position:relative; height:10%;"></div><div style="background-color:#A8B; width:20%; position:relative; height:80%; float:left;"><form method="post" action="deslog.php"><p><?php echo "$usuario logado"?> <p><input type="submit" value="Deslogar"></form></div><div style="background-color:#75F; width:80%; position:relative; height:80%;float:left;"><p>BEM VINDO <?php echo "$usuario"?><p></div></div></body></html>

Código do deslog.php:

<?phpsession_start();session_destroy();echo "<script>window.location.href = 'http://localhost:8080/SITE TESTE/Login/index.php'</script>";?>
Link para o comentário
Compartilhar em outros sites

O problema é que o seu while do loga.php não está percorrendo o array do mysql_fetch. Uma solução é usar o foreach pra isso:

$data = mysql_query("select * from cadastro");        //variavel login valido        $login_is_valido = false;        foreach (mysql_fetch_array($data) as $resposta) {            $usuario = $resposta['nome'];            $passw = $resposta['senha'];            if ($senha == $passw && $login == $usuario) {                $login_is_valido = true;                echo "<script>window.location.href = 'http://localhost:8080/SITE TESTE/Login/loged.php'</script>";                break;            } else {//você não tem como saber em que posição do array vai estar o usuario que se registrou, então isso aqui é invlaido                //echo "<script>alert('Usuário e senha incorretos!')</script>";                //echo "<script>window.location.href = 'http://localhost:8080/SITE TESTE/Login/loga.php'</script>";            }        }        //caso o login não seja valido        if ($login_is_valido) {            echo "<script>alert('Usuário e senha incorretos!')</script>";            echo "<script>window.location.href = 'http://localhost:8080/SITE TESTE/Login/loga.php'</script>";        }

Outra solução seria você buscar no banco o registro que contem os campos nome e senha equivalentes aos passados pelo formulario. Tipo assim:

 $data = mysql_query("select * from cadastro where nome = $login and senha = $senha");        $registro = mysql_fetch_array($data);        if (isset($registro['nome']) && isset($registro['senha'])) {            echo "<script>window.location.href = 'http://localhost:8080/SITE TESTE/Login/loged.php'</script>";        } else {             echo "<script>alert('Usuário e senha incorretos!')</script>";            echo "<script>window.location.href = 'http://localhost:8080/SITE TESTE/Login/loga.php'</script>";        }

Se houver os campos nome e senha no array retornado pela consulta o login é valido.

Link para o comentário
Compartilhar em outros sites

Olá, antes de mais, só para avisar mesmo, existe um monte de erros na sintaxe do seu código *-*.

E como o amigo em cima disse, usar o fetch_array e depois percorrer essas arrays utilizando o "nome" ou "senha" que provavelmente não são os índices dessas arrays é errado e talvez seja essa a razão do erro, podes sempre tentar substituir o fetch_array por fetch_assoc e ver se resolve o problema, ou então extrair esses valores através da função foreach, como o camarada acima especificou.

 

Consultas no banco de dados onde utilizamos a cláusula SELECT normalmente retorna um conjunto de resultados onde as suas índices são definidas por números, começando pelo 0.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...