Publicidade

DinhoPHP

[Resolvido] Problema com login

Patrocínio:

Tenho um sistema de login conforme o código abaixo, porém o post  já inicia com uma senha criptografada com 40string mesmo com o campo vazio, e o usuario se loga com qualquer senha digitada. Favor! Preciso de ajuda para concluir isto. Fiz várias pesquisas e nada.

logar.php

require_once 'conexao.php';
require_once 'Login.class.php';
    //RECEBE OS DADOS DO FORMULÁRIO
    /*$email = $_POST["email"];
    $senha = $_POST["senha"];*/

    $email = preg_replace('/[^[:alnum:]_.-]/', '', $_POST["email"]);
    $senha = sha1($_POST["senha"]. "spbrmitcz");

        //VERIFICA SE ESTÃO VAZIOS
        if (empty($email) || empty($senha)) {
            echo "Preencha todos os campos!";
        }else {
            //Email inválido!
            if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
                echo "Email ou senha inválidos! Por favor, digite novamente.";
            } else {
                //Executa a classe Login

                $logado = new Login();
                $logado = $logado->Logar($email, $senha);
            }
        }
    echo "<br>" . var_dump($email) . "<br>". var_dump($senha);

Login.class.php

require_once 'conexao.php';

class Login extends Conexao
{
    public function Logar($email, $senha){
        $datalog = $this->pdo->prepare("SELECT * FROM profissionais WHERE email = :email AND senha = :senha");
        $datalog->bindValue(':email', $email, PDO::PARAM_STR);
        $datalog->bindValue(':senha', $senha);
        $datalog->execute();
        $datalog->fetchAll(PDO::FETCH_ASSOC);

            if (count($datalog) <= 0) {
                echo "<h1>Digite seu email e senha corretamente!</h1>";
            } else {
                echo "<h1>Logado com sucesso!</h1>";
            }
echo "<br>"
        .var_dump($datalog)."<br>"
        .var_dump($email)."<br>"
        .var_dump($senha)."<br>";
    }
}

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sua senha "inicia" com 40 caracteres por esse motivo:

$senha = sha1($_POST["senha"]. "spbrmitcz");

 

Ele gera o hash sha1 do post vazio. Não deseja isto? Verifique se o post está preenchido ou não (if/else) ANTES de aplicar o sha1.

 

Quanto ao outro problema, altere a lógica:

 

$datalog = $this->pdo->prepare("SELECT * FROM profissionais WHERE email = :email AND senha = :senha LIMIT 1");
        $datalog->bindValue(':email', $email, PDO::PARAM_STR);
        $datalog->bindValue(':senha', $senha, PDO::PARAM_STR);
        $datalog->execute();
        

            if ($datalog->rowCount() != 1) {
                echo "<h1>Digite seu email e senha corretamente!</h1>";
				print_r($datalog->errorInfo();
            } else {
                echo "<h1>Logado com sucesso!</h1>";
            }
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pensei nisso, porém não testei sem o hash para a leitura da senha no BD, Assim como vi em um vídeo no Youtube. Vou testar e retorno. Obrigadão!

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
 $email = preg_replace('/[^[:alnum:]_.-]/', '', $_POST["email"]);
    $senha = sha1($_POST["senha"]);

Está estranho esse negócio, continua com 40 strings

 if ($datalog->rowCount() != 1) {
                echo "<h1>Digite seu email e senha corretamente!</h1>";
                print_r($datalog->errorInfo());
            } else {
                echo "<h1>Logado com sucesso!</h1>";
            }

Mudei a lógica e só dá incorreto e...

Digite seu email e senha corretamente!

Array ( [0] => 00000 [1] => [2] => ) object(PDOStatement)#3 (1) { ["queryString"]=> string(67) "SELECT * FROM profissionais WHERE email = :email AND senha = :senha" } string(10) "nanapb.com" string(40) "7c222fb2927d828af22f592134e8932480637c0d" 



string(10) "nanapb.com" string(40) "7c222fb2927d828af22f592134e8932480637c0d" 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Login funcionando perfeitamente assim: (sem a preg_replace, pois ela removeu a arroba)

logar.php

require_once 'conexao.php';
require_once 'Login.class.php';
    //RECEBE OS DADOS DO FORMULÁRIO
    $email = $_POST["email"];
    $senha = $_POST["senha"];

    //$email = preg_replace('/[^[:alnum:]_.-]/', '', $_POST["email"]);
    $senha2 = sha1($senha. "spbrmitcz");
        //VERIFICA SE ESTÃO VAZIOS
        if (empty($email) || empty($senha)) {
            echo "Preencha todos os campos!";
        }else {
            //Todos os campos preenchidos
            if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
                echo "Email ou senha inválidos! Por favor, digite novamente.";
            } else {
                //Executa a classe de cadastro

                $logado = new Login();
                $logado = $logado->Logar($email, $senha2);
            }
        }echo var_dump($email);

Login.class.php

require_once 'conexao.php';

class Login extends Conexao
{
    public function Logar($email, $senha2){
        $datalog = $this->pdo->prepare("SELECT * FROM profissionais WHERE email = :email AND senha = :senha LIMIT 1");
        $datalog->bindValue(":email", $email);
        $datalog->bindValue(":senha", $senha2);
        $datalog->execute();
        $datalog->fetchAll(PDO::FETCH_ASSOC);

            if ($datalog->rowCount() == 1){
                echo "<h1>Logado com sucesso!</h1>";
            } else {
                echo "<h1>Digite seu email e senha corretamente!</h1>";
                print_r($datalog->errorInfo());
            }echo "<br>"
            .var_dump($datalog)."<br>"
            .var_dump($email)."<br>"
            .var_dump($senha2)."<br>";
    }
}

Agora preciso tratar as SQL injections, me deparei com diversos posts até mesmo daqui, ainda não testei e apliquei nenhum. Se alguém tiver sugestão de qual a melhor e puder me ajudar, pois de SQL injection não entendo muito.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

1 hora atrás, DinhoPHP disse:

Agora preciso tratar as SQL injections, me deparei com diversos posts até mesmo daqui, ainda não testei e apliquei nenhum. Se alguém tiver sugestão de qual a melhor e puder me ajudar, pois de SQL injection não entendo muito.

A PDO já faz isso! :thumbsup:

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, Williams Duarte disse:

 

A PDO já faz isso! :thumbsup:

Valeu William, desculpe enfadar mais uma vez, mas isso foi solucionado 100% com o PDO? Pois eu tentei algumas e realmente não consegui realizar a SQL Injection.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 minutos atrás, DinhoPHP disse:

Valeu William, desculpe enfadar mais uma vez, mas isso foi solucionado 100% com o PDO? Pois eu tentei algumas e realmente não consegui realizar a SQL Injection.

Não, nada é 100% garantido, PDO resolve muito bem problema de sql injection de primeira ordem, esse post explica exatamente essa situação:

http://stackoverflow.com/questions/134099/are-pdo-prepared-statements-sufficient-to-prevent-sql-injection

 

Tenha em mente que nada que venha do usuário é seguro, mesmo vindo de campos "select", "checkbox" e etc, tudo pode ser manipulado.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço aos dois pela ajuda e informação, bom, vejo que a frase que li em um livro JAVA no passado e a levo em mente sempre será verídica, na programação nada é 100% perfeito. É que bate uns receios, mas procurarei fazer o meu melhor, ter coragem e seguir. Bom, isso que fiz foi algo bem básico só para testar estas funções, tanto que não apliquei SESSION nem nada. Mas vlw!

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenha em mente que é seguro contra injeção sql, mas não é 100%.
Mas acredito que você não conseguira desenvolver algo mais seguro do que a própria PDO. Use as constantes na declarações.
 

...

$datalog = $this->pdo->prepare("SELECT * FROM profissionais WHERE email = :email AND senha = :senha LIMIT 1");
$datalog->bindParam(":email", $email, PDO::PARAM_STR);
$datalog->bindParam(":senha", $senha2, PDO::PARAM_STR);

...

 

http://php.net/manual/en/pdo.constants.php

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
47 minutos atrás, Williams Duarte disse:

Tenha em mente que é seguro contra injeção sql, mas não é 100%.
Mas acredito que você não conseguira desenvolver algo mais seguro do que a própria PDO. Use as constantes na declarações.
 


...

$datalog = $this->pdo->prepare("SELECT * FROM profissionais WHERE email = :email AND senha = :senha LIMIT 1");
$datalog->bindParam(":email", $email, PDO::PARAM_STR);
$datalog->bindParam(":senha", $senha2, PDO::PARAM_STR);

...

 

http://php.net/manual/en/pdo.constants.php

Compreendo e sempre faço uso destas contants, mas como eu vinha tendo problemas eu a tinha removido. Já fiz alguns freelance só que nada relacionado à sistema de cadastro e login; e nesses eu percebi esses usos da PDO mesmo, só que como este eu estou desenvolvendo, veio uma preocupação extra.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Somente para complementar, o tutorial mais completo sobre sql injection + php solutions que eu já li está em:

https://phpdelusions.net/

 

Vale muito a leitura.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 minutos atrás, Gabriel Heming disse:

Somente para complementar, o tutorial mais completo sobre sql injection + php solutions que eu já li está em:

https://phpdelusions.net/

 

Vale muito a leitura.

Beleza! Gabriel. Super válido esse complemento. Abraço!

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, venho novamente e espero que possam me ajudar novamente. Uma vez que fiz esse SELECT * FROM, eu não deveria retornar à qualquer campo da minha tabela sem ter erros? Eu já fiz isso uma vez, inclusive no mesmo projeto, só que aqui não funciona, nem com PDO::FECTH_OBJ ou ASSOC.

 

public function Login($email, $senha2){
        $datalog = $this->pdo->prepare("SELECT * FROM profissionais WHERE email = :email AND senha = :senha LIMIT 1");
        $datalog->bindValue(":email", $email);
        $datalog->bindValue(":senha", $senha2);
        $datalog->execute();
        $dadoslogin = $datalog->fetchAll(PDO::FETCH_OBJ);

        if ($dadoslogin){
            session_start();
            $_SESSION["id"] = $dadoslogin->id; //TENTATIVA
            $_SESSION["email"] = $email; // FUNCIONAL
            echo "<h1>Logado com sucesso!".$_SESSION["email"]."</h1>";// TESTE DE EXIBIÇÃO
            echo "<h1>Logado com sucesso!".$_SESSION["id"]."</h1>";//FAIL RS
            //header("refresh: 3; url=mensagem.php");
        } else {
            echo "<h1>Email ou senha incorretos! Por favor, digite novamente.</h1>";
            session_destroy();
            header("refresh: 3; url=../login.php");
        }
    }

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use $datalog->rowCount() para ver quantas linhas retornaram na query...

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 minutos atrás, ESerra disse:

Use $datalog->rowCount() para ver quantas linhas retornaram na query...

Retorna exatamente a uma.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
print_r($dadoslogin);

retorna o que?

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei um var_dump ($dadoslogin) e me retornou à isto

 

array(1) { [0]=> object(stdClass)#4 (7) { ["id"]=> string(2) "14" ["nivel"]=> string(1) "1" ["status"]=> string(1) "1" ["nome"]=> string(4) "Nana" ["rua"]=> string(14) "Rua souza maia" ["email"]=> string(11) "nana@pb.com" ["senha"]=> string(40) "senha criptografada" } } string(11) "nana@pb.com"

 

Ou seja, tudo está vindo no array.

4 minutos atrás, ESerra disse:

print_r($dadoslogin);

retorna o que?

Eu  estava enviando o var_dump quando me enviou.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado ESerra pelo apoio, mas resolvi desta maneira. Tinha esquecido do Fetch rs

 

public function Login($email, $senha2){
        $datalog = $this->pdo->prepare("SELECT * FROM profissionais WHERE email = :email AND senha = :senha LIMIT 1");
        $datalog->bindValue(":email", $email, PDO::PARAM_STR);
        $datalog->bindValue(":senha", $senha2, PDO::PARAM_STR);
        $datalog->execute();
        $dadoslogin = $datalog->fetch(PDO::FETCH_ASSOC);
        echo var_dump($datalog->rowCount()). "<br>";

        if ($dadoslogin){
            session_start();
            $_SESSION["nome"] = $dadoslogin["nome"]; // FUNCIONAL
            $_SESSION["email"] = $dadoslogin["email"]; // FUNCIONAL

            echo "<h1>Logado com sucesso!".$_SESSION["nome"]."</h1>";// TESTE DE EXIBIÇÃO
            echo "<h1>Logado com sucesso!".$_SESSION["email"]."</h1>";//FAIL RS
            //header("refresh: 3; url=../mensagem.php");
            echo print_r($dadoslogin);
        } else {
            echo "<h1>Email ou senha incorretos! Por favor, digite novamente.</h1>";
            session_destroy();
            header("refresh: 3; url=../login.php");
        }
    }

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora

  • Próximos Eventos

  • Conteúdo Similar

    • Por Fmix
      Alguém sabe aonde eu encontro um script php de modelo para ser implementado posteriormente, este script tem que realizar o cadastro e login de usuarios com niveis difrentes, por exemplo admin e user. Também que já eateja implememtado encriptacão de senha, recuperacão de senhas, essas opções basicas...
    • Por giovannaalves
      Estou tentando logar no wp-admin do meu site, mas ele da login invalido.
      quando tento com o email, ele fala que a senha está errada, eu peço para reenviar a senha, e ele não reenvia.
      O site está hospedado na minha revenda cpanel da locaweb. 
      Existe alguma forma de redefinir a senha pelo cpanel?
    • Por marlone
      <?php if(!isset($_SESSION)) session_start(); //Login de Usários if(isset($_POST[login])){ include('class/conexao.php'); $erro = array(); // Captação de dados $senha = $_POST[password]; $_SESSION['email'] = $mysqli->escape_string($_POST['email']); // Validação de dados if(!filter_var($_SESSION['email'], FILTER_VALIDATE_EMAIL)) $erro[] = "Preencha seu <strong>e-mail</strong> corretamente."; if(strlen($senha) < 6 || strlen($senha) > 16) $erro[] = "Preencha sua <strong>senha</strong> corretamente."; if(count($erro) == 0){ $sql = "SELECT senha as senha, id as valor FROM usuarios WHERE email = '$_SESSION'"; $que = $mysqli->query($sql) or die($mysqli->error); $dado = $que->fetch_assoc(); if($que->num_rows == 0) $erro[] = "Nenhum usuário possui o <strong>e-mail</strong> informado."; elseif(strcmp($dado[senha], ($senha)) == 0){ $_SESSION[usuario_logado] = $dado[valor]; }else $erro[] = "<strong>Senha</strong> incorreta."; if(count($erro) == 0){ echo "<script>location.href='home.php';</script>"; exit(); unset($_SESSION['email']); } } } ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <title>Login</title> <!-- Bootstrap Core CSS --> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- Custom CSS --> <link href="css/sb-admin-2.css" rel="stylesheet"> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div class="container"> <div class="row"> <div class="col-md-4 col-md-offset-4"> <div class="login-panel panel panel-default"> <div class="panel-heading"> <h3 class="panel-title">Login</h3> </div> <div class="panel-body"> <?php if(isset($erro)) if(count($erro) > 0){ ?> <div class="alert alert-danger"> <?php foreach($erro as $msg) echo "$msg <br>"; ?> </div> <?php } ?> <form method="post" action="" role="form"> <fieldset> <div class="form-group"> <input value="<?php if(isset($_SESSION['email'])) echo $_SESSION['email']; ?>" class="form-control" placeholder="E-mail" name="email" type="email" autofocus> </div> <div class="form-group"> <input class="form-control" required placeholder="Senha" name="password" type="password" value=""> </div> <div class="checkbox"> <label> <input name="remember" type="checkbox" value="Remember Me">Lembrar-me </label> </div> <button type="submit" name="login" value="true" class="btn btn-success btn-block">Login</button> </fieldset> </form> </div> </div> </div> </div> </div> </body> </html>

      Quando vou testar da esse erro  mysqli_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\login.php on line 14 o que pode ser?
    • Por lscouto92
      Estou aprendendo PHP e PDO, possuo pouco conhecimento na linguagem.
      Como exercício, estou tentando desenvolver um sistema simples de Cadastro e Login..
      Ao fazer o sistema de Login, me deparei com o seguinte erro:
       
      exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in C:\wamp\www\sistemacobi\Index.php:17 Stack trace: #0 C:\wamp\www\sistemacobi\Index.php(17): PDOStatement->execute() #1 {main}
      <?php    include("admin/conexao/conecta.php");           if (isset($_POST['logar'])) {     // Recuperar Dados     $email = trim(strip_tags($_POST['email']));     $senha = trim(strip_tags($_POST['senha']));     // Selecionar Banco de Dados     $select = "SELECT * FROM login WHERE email=:email AND senha=senha";     try {           $result = $conexao->prepare($select);           $result->bindParam(':email', $email, PDO::PARAM_STR);           $result->bindParam(':senha', $senha, PDO::PARAM_STR);           $result->execute();            } catch (PDOException $e) {       echo $e;     }           }  ?> Essa é a Conexão:
      <?php      try{         $conexao = new PDO('mysql:host=localhost;dbname=tcc', 'Admin', 'couto200892');         $conexao ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);     }catch(PDOException $e){         echo 'ERROR: ' . $e->getMessage();      }  ?>  
       

       
       
    • Por kamikaze19971997
      Boas pessoa tudo bem ? estou precisando muito da ajuda de vocês... já tem 4 dais que estou quebrando a cabeça nesse assunto e ainda não consegui resolver...
      * Só para deixar claro desculpa minha ignorância mas não manjo muito de PHP.
       
      Meu problema é o seguinte pessoa... eu estou desenvolvendo um sistema bastante simples para ser usado pela minha pessoa e mas 4 amigos... o sistema trata-se de; Pagina de Login, Pagina de Cadastro e um Painel...  só que estou com uma pequena dificuldade em usar "SESSION" para que cada usuário possa ver suas informações... gostaria de uma orientação de como fazer isso.
       
      Meu projeto tem as seguintes pasta..
       
      index.html
      config.php
      login.php
      cadastro.php
       e um banco de dados com a tabala com USUARIO e SENHA.
       
      Segue o código abaixo:
      LOGIN e CADASTRO
       
      index.php
      <!DOCTYPE html> <html > <head> <meta charset="UTF-8"> <title>BetCoins - Login</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"> <link rel='stylesheet prefetch' href='http://fonts.googleapis.com/css?family=Roboto:400,100,300,500,700,900|RobotoDraft:400,100,300,500,700,900'> <link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css'> <link rel="stylesheet" href="css/style.css"> </head> <body> <!-- Mixins--> <!-- Pen Title--> <div class="pen-title"> <h1>Painel de Controle</h1><span> </div> <div class="container"> <div class="card"></div> <div class="card"> <h1 class="title">Login</h1> <form action="Login.php" method="post"> <div class="input-container"> <input type="#{type}" id="#{label}" type="text" name="usuario"/> <label for="#{label}">Usuário</label> <div class="bar"></div> </div> <div class="input-container"> <input type="password" id="#{label}" name="senha" required="required"/> <label for="#{label}">Senha</label> <div class="bar"></div> </div> <div class="button-container"> <button><span> ENTRAR</span></button> </div> <div class="footer"><a href="#">Esqueceu a senha?</a></div> </form> </div> <div class="card alt"> <div class="toggle"></div> <h1 class="title">Cadastrar <div class="close"></div> </h1> <form action="Cadastro.php" method="post"> <div class="input-container"> <input type="#{type}" id="#{label}" type="text" required="required" name="novo_usuario"/> <label for="#{label}">Usuário</label> <div class="bar"></div> </div> <div class="input-container"> <input type="password" id="#{label}" required="required" name="nova_senha"/> <label for="#{label}">Senha</label> <div class="bar"></div> </div> <div class="input-container"> <input type="password" id="#{label}" required="required" name="nova_senha2"/> <label for="#{label}">Repitir Senha</label> <div class="bar"></div> </div> <div class="button-container"> <button><span>CADASTRAR</span></button> </div> </form> </div> </div> <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> <script src="js/index.js"></script> </body> </html>  
      Login.php
      <?php include ("Config.php"); // INCLUINDO INFORMAÇÕES DO CONDIG.PHP @mysql_connect("$host", "$user", "$pass") or die(mysql_error()); // CONECTANDO-SE AO MYSQL DA MAQUINA mysql_select_db($database) or die(mysql_error()); // CONECTANDO-SE A DATA BASE $usuario = ($_POST['usuario']); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELO CAMPO DE TEXTO LOGIN DO FORMULARIO $senha = ($_POST['senha']); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELO CAMPO DE TEXTO SENHA DO FORMULARIO $analisar = "SELECT * FROM login WHERE usuario = '$usuario' AND senha = '$senha'"; // ESSA VARIAVEL IRÁ ANALISAR NO BANCO DE DADOS NA TABELA LOGIN SE USUARIO E SENHA ESTAO CORRETOS $resultado = mysql_query($analisar); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELA VARIAVEL $ANALISAR $iniciar = mysql_num_rows($resultado); // ESSA VARIAVEL SERVIRÁ PARA CHECAR SE EXISTE UM USUARIO COM ESSE LOGIN (NOTE QUE ELA BUSCA INFORMAÇÕES DE OUTRAS VARIAVEIS) if ($iniciar == 1)// ESSA CONDIÇÃO IRÁ VERIFICAR SE OS DADOS FORNECIDOS NÃO IGUAIS AOS DO BANCO DE DADOS { // APÓS A CONDIÇÃO FOR ACEITA, ACONTECE UMA AÇÃO, E ESSA AÇÃO SERÁ O RESULTADO DO LOGIN EFETUADO ?> <!-- NOTE QUE ISSO JÁ É UM COMENTARIO EM HTML, ISSO ACONTECEU PORQUÊ EU FECHEI A TAG DO PHP PARA QUE EU POSSA TRBALHAR COM CODIGOS EM HTML APÓS EU TER EFETUADO O LOGIN --> <center> Bem Vindo ao seu Painel <font style="font-weight:bold;"><?php echo $usuario ?></font> <!-- MENSAGEM QUE APARECERÁ CASO ESTA LOGADO --> </center> <?php // AQUI JA COMEÇA COMENTARIOS EM PHP, OU SEJA EU ABRI NOVAMENTE A TAG DO PHP PARA QUE MEU CODIGO CONTINUE PROCESSANDO SEM ERRO ALGUM } else // EXCEÇÃO CASO LOGIN OU SENHA ESTIVEREM ERRADOS { echo "Login ou Senha Invalido"; // MENSAGEM QUE APARECERÁ CASO OS DADOS FORNECIDOS ESTAJAM ERRADOS } ?>  
       
      Cadastro.php
       
      <?php require_once ("Config.php"); // INCLUINDO INFORMAÇÕES DO CONDIG.PHP @mysql_connect("$host", "$user", "$pass") or die(mysql_error()); // CONECTANDO-SE AO MYSQL DA MAQUINA mysql_select_db($database) or die(mysql_error()); // CONECTANDO-SE A DATA BASE $novo_usuario = ($_POST['novo_usuario']); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELO CAMPO DE TEXTO LOGIN DO FORMULARIO $nova_senha = ($_POST['nova_senha']); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELO CAMPO DE TEXTO SENHA DO FORMULARIO $nova_senha2 = ($_POST['nova_senha2']); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELO CAMPO DE TEXTO COMFIRME A SENHA DO FORMULARIO $selecionar = "SELECT usuario FROM login WHERE usuario = '$novo_usuario'"; // ESSA VARIAVEL IRÁ SELECIONAR A TABELA E A COLUNA PARA QUE SEJA CHECADO SE NÃO EXISTE UM MESMO LOGIN $verificar = mysql_query($selecionar); // ESSA VARIAVEL IRÁ GUARDAR INFORMAÇÕES FORNECIDAS PELA VARIAVEL $SELECIONAR $enviar = mysql_num_rows($verificar); // ESSA VARIAVEL SERVIRÁ PARA CHECAR SE JA EXISTE UM USUARIO COM ESSE LOGIN (NOTE QUE ELA BUSCA INFORMAÇÕES DE OUTRAS VARIAVEIS) if ($enviar == 1) // ESSA CONDIÇÃO IRÁ VERIFICAR SE OS DADOS FORNECIDOS DESDE A PRIMEIRA VARIAVEL $SELECIONAR ATÉ ENVIAR SE NÃO HÁ NENHUM CONFRONTO (A CONDIÇÃO A SER CUMPRIDA AQUI É QUE O VALOR DO LOGIN DO USUARIO TEM QUE SER DIFERENTE DE 1 PARA CONTINUAR, SE O POR ACASO ALGUEM JA ESTIVER UTILIZANDO O MESMO LOGIN, DE ALGUMA FORMA ESSE NOME SERÁ COMPARADO COM O Nº 1, E APARECERÁ A MENSAGEM DE ERRO ABAIXO) { echo "O Nome do Usuario Já Existe"; // MENSAGEM DE ERRO QUE IRÁ APARECER CASO A CONDIÇÃO SEJA CUMPRIDA, OU SEJA, A CONDIÇÃO SE CUMPRE QUANDO O LOGIN JA ESTIVER SENDO USADO } else // EXCEÇÃO CASO NÃO SEJA CUMPRIDA AS CONDIÇÕES ( ESSA EXCEÇÃO ELA SERÁ PROCESSADA QUANDO OS DADOS FORNECIDOS PELA PESSOA AINDA NÃO ESTIVER SENDO UTILIZADA) { if ($nova_senha == $nova_senha2) // ESSA CONDIÇÃO IRÁ VERIFICAR SE A SENHA PRINCIPAL É A MESMA FORNECIDA PELA CONFIRMAÇÃO DA SENHA, SE AS DUAS SENHAS ESTIVEREM CORRETAS O CADASTRO IRÁ SER CONCLUIDO. { $sqlEnviando = mysql_query("INSERT INTO login (usuario,senha) VALUES ('$novo_usuario','$nova_senha')") or die(mysql_error()); /* AQUI O CODIGO IRÁ INSERIR OS DADOS FORNECIDOS PELA PESSOA NO BANCO DE DADOS, FUNCIONA +/- ASSIM ESSA LINHA: "INSIRA DENTRO DA TABELA LOGIN NAS COLUNAS USUARIO E SENHA OS VALORES $NOVO_USUARIO E $NOVA_SENHA" */ echo "Cadastro Efetuado com Sucesso"; // MENSAGEM QUE IRÁ APARECER CASO O CADASTRO SEJA EFETUADO COM SUCESSO! } else // ESSA EXCEÇÃO SE APLICA QUANDO A SENHA PRINCIPAL FOI DIGITA DIFERENTE DA CONFIRMAÇÃO DA SENHA { echo "As Senhas não Conferem"; // MENSAGEM QUE IRÁ APARECER CASO AS SENHA NÃO FOREM CORRETAS } } ?>  
       
      Então gostaria de cria um painel para os usuários... mas como fazer o usuário ver apenas os dados dele e nao dos outros, andei vendo vídeos e observei que pode ser resolvido por essa função SESSION.