Ir para conteúdo

POWERED BY:

Arquivado

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

grldesign

Sistema de Login

Recommended Posts

Olá Galera!

 

Já postei sobre um sistema de login em 3 níveis anteriormente só que um erro está ocorrendo.

 

O Sistema sempre loga o usuário, mesmo que a senha e o usuário forem errados.

 

Vou colar abaixo o código para ver se alguém pode me ajudar OK?

 

Index.php

<form method="post" action="verifica.php">                        Username<br>            <input type="text" name="user_panel" size="50">            <br>            <br>            Password<br>            <input type="text" name="pass_panel" size="50">            <br>            <br>            <input type="submit" name="logar" value=" Logar-se ">                           <input type="reset" name="limpar" value=" Limpar Campos">            </strong>           </form>

 

 

Verifica.php

<? session_start();	if(!empty($HTTP_POST_VARS[user_panel])) {  if(!empty($HTTP_POST_VARS[pass_panel])) {$user = $HTTP_POST_VARS[user_panel];$pass = $HTTP_POST_VARS[pass_panel];  require('config/dados.php');$busca = "SELECT * FROM login WHERE username='$user' AND password='$pass'";$verifica = mysql_query($busca);$confirma = mysql_num_rows($verifica);$campo = mysql_fetch_array($verifica);if(($confirma = 1)) {$campo_nome = $campo[nome_completo];$campo_usuario = $user;$campo_senha = $pass;$campo_email = $campo[email];$campo_cadastro = $campo[cadastro];        $_SESSION["nome"] = $campo_nome;  $_SESSION["username"] = $campo_usuario;  $_SESSION["senha"] = $campo_senha;  $_SESSION["email"] = $campo_email;  $_SESSION["cadastro"] = $campo_cadastro;    	   if(($_SESSION["cadastro"] = 'Administrador')) {      header("Location: painel.php");   } //Fecha IF Administrador   if(($_SESSION["cadastro"] = 'Aluno')) {      header("location: painel.php");   } //Fecha IF Aluno   if(($_SESSION["cadastro"] = 'Professor')) {      header("location: painel.php");   } //Fecha IF Professor   }}else {header ("location: index.php");  	}  	}  	?>

 

O Arquivo Painel.php não colarei pois é grande e não está fazendo a diferença neste caso , já que o erro é durante a verificação. Se alguem puder me ajudar serei grato.

Inclusive por PM.

 

Um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?

session_start();

 

if(!empty($HTTP_POST_VARS[user_panel])) {

if(!empty($HTTP_POST_VARS[pass_panel])) {

 

$user = $HTTP_POST_VARS[user_panel];

$pass = $HTTP_POST_VARS[pass_panel]; 

 

require('config/dados.php');

 

$busca = "SELECT * FROM login WHERE username=$user";

$verifica = mysql_query($busca);

$confirma = mysql_num_rows($verifica);

while ($r = mysql_fetch_array($verifica)) {

if ($r[senha] = $pass) {

$_SESSION["nome"] = $campo_nome;

$_SESSION["username"] = $campo_usuario;

$_SESSION["senha"] = $campo_senha;

$_SESSION["email"] = $campo_email;

$_SESSION["cadastro"] = $campo_cadastro;   

} // Fecha if

} // Fecha while

 

 

  if(($_SESSION["cadastro"] = 'Administrador')) {

    header("Location: painel.php");

  } //Fecha IF Administrador

  if(($_SESSION["cadastro"] = 'Aluno')) {

    header("location: painel.php");

  } //Fecha IF Aluno

  if(($_SESSION["cadastro"] = 'Professor')) {

    header("location: painel.php");

  } //Fecha IF Professor

  }

 

}

else {

header ("location: index.php");

  }

  }

 

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito cuidade e carinhao com esse código, ok!? Tenho ciúmes dos códigos que escrevo.

 

$query = "select * from users where users.usuario = '$user'";          $e = mysql_query($query);          $total = mysql_num_rows($e);         if(!empty($total)){          while($capsula = mysql_fetch_row($e)){           $nome = $capsula[1];           $userid = $capsula[0];           $user = $capsula[10];           $senha = $capsula[11];           $status = $capsula[12];          }         }         else         {           $erro = "<font color=\"#ff0000\">Erro! </font> O nome de usuário informado está incorreto!";           return $erro;         }         if($pass != $senha) {            $erro = "<font color=\"#ff0000\">Erro! </font> A senha informada está incorreta!";            return $erro;         }         elseif($status != 1){            $erro = "<font color=\"#ff0000\">Erro! </font>O nome de usuário encontra-se bloqueado!";            return $erro;         }         else         {            session_start();            $_SESSION["username"] = $this->user;            $_SESSION["password"] = $this->senha;         }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguns comentarios.1. como ja disseram "==" é diferente de "=", se duvida faca testes. Faz um codigo besta pra isso.2. Se a versao do PHP esta atualizada, reduza o codigo, de $HTTP_POST_VARS para simplesmente $_POST[]3. Nao precisa atribuir variavel a tudo, basta usala direto no codigo. No trecho confirma tem dois parenteses desnecessarios, basta o do IF.você pode fazer verificacao dessa forma:$sql = "SELECT user,passwd FROM user='$user' AND passwd='$passwd'";$rs = mysql_query($sql) or die ("erro");if ( mysql_num_rows($rs) > 0 ){echo "logado";}else{echo "erro";}4. Comece a usar AND,OR pra evitar divitar codigos desnecessariosif(!empty($HTTP_POST_VARS[user_panel])) { if(!empty($HTTP_POST_VARS[pass_panel])) {no trecho acima você usa dois IF desnecessariamente, use um, usando AND. E n precisa usar !empty, basta por:ps. variaveis capturadas pelo $_POST.if ($user AND $passwd){...}5. Agora é OPCAO, eu gosto de digitar o que é codigo de SQL em MAIUSCULO, pra diferencia o codigo da busca, fica mais facil a visualizacao.Como a sua duvida era apenas na verificacao, e usar o "==" ao inves de um. Eu gosto de usar > pq basta n ser zero para validar, se por um conflito sao encontrados 2 dados iguais ele vai retornar FALSE na verificacao embora seja verdadeira.Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Keitaro, vai abaixo o arquivo de verificação modificado. Veja como ficou e me diga se está bom agora!

 

<?

session_start();

 

$user = $_POST[user_panel];

$pass = $_POST[pass_panel]; 

 

if($user AND $pass) {

 

require('config/dados.php');

 

$busca = "SELECT username,password FROM login WHERE username=='$user' AND password=='$pass'";

$verifica = mysql_query($busca);

 

while($campo = mysql_fetch_array($verifica)) {

 

if(mysql_num_rows($verifica) > 0) {

 

$campo_nome = explode("", $campo[nome_completo]);

 

        $_SESSION["nome"] = $campo_nome[0];

  $_SESSION["username"] = $campo[usuario];

  $_SESSION["senha"] = $campo[senha];

  $_SESSION["email"] = $campo;

  $_SESSION["cadastro"] = $campo[cadastro];   

 

}

}

  if($_SESSION["cadastro"] == 'Administrador') {

      header("Location: painel.php");

  } //Fecha IF Administrador

  if($_SESSION["cadastro"] == 'Aluno') {

      header("Location: painel.php");

  } //Fecha IF Aluno

  if($_SESSION["cadastro"] == 'Professor') {

      header("Location: painel.php");

  } //Fecha IF Professor

  }

 

 

else {

header ("Location: index.php?acao=erro&tipo=login");

  }

 

 

 

?>

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.