Clipper On Line • Ver Tópico - PHP: senha

PHP: senha

Discussão sobre outras linguagens de programação.

Moderador: Moderadores

 

PHP: senha

Mensagempor cjp » 30 Set 2020 22:29

Pessoal, peguei código abaixo num post aqui no fórum, e fiz algumas modificações, mesmo sem entendê-lo bem.

A versão original funciona bem, mas esta versão que eu alterei para uso em outro caso não está funcionando.

Ele até pede a senha, mas não está retornando corretamente o nome do usuário, como pretendido.

Coloque uns "echo" para testar. O estranho é que ele mostra senha1 e senha2, com conteúdo vazio, mas não mostra nenhum dos outros senha/teste.

Alguém poderia me ajudar a encontrar onde errei?

<?php
session_start();

include("conexao.php");

conectk();

$senha = ( isset($_POST['senha']) ) ? $_POST['senha'] : $_GET['senha'];
$usuario = ( isset($_POST['usuario']) ) ? $_POST['usuario'] : $_GET['usuario'];
$url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];
$erro = 0;
$mensagem = '';
$encerra = ( isset($_POST['logout']) ) ? $_POST['logout'] : $_GET['logout'];

echo "Senha1:".$senha;

if (!isset($_SESSION['s_login']))
{

echo "Senha2:".$senha;

if($senha)
   {
echo "Senha3:".$senha;
   $SQL = "SELECT * FROM numeros WHERE senha = '". $senha . "'";
   $result_id = mysql_query($SQL) or die("Erro no banco de dados: ".$SQL);
   $total = mysql_num_rows($result_id);
   if($total)
     {
     $dados = mysql_fetch_array($result_id);
     $usuario = $dados["usuario"];
echo "Usuário2:".$usuario;
   
     $_SESSION['s_login'] = $senha;
     $_SESSION['nome_usuario'] = $usuario;
     header("Location: pontos.php");
     exit;
     }
   else
     {
echo "Senha4:".$senha;

      if ((!$senha))
        {
         $erro = 1;
         }
     else
        {
         $erro = 2;
         }
      }
    }
}
else
   {
echo "Senha5:".$senha;

   if ($encerra==1)
      {
      session_unset();
      session_destroy();
      $erro = 3;
      }
   else
      {
      header("Location: pontos.php");
      exit;
      }
    }
   
if ($erro!=4)
   {
   }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
  <title>Pontos</title>
<style>
  #Centralizar {
   position: absolute;
   width: auto;
   height: auto;
   left: 30%;
   top:30%;
   margin-left: -250px;
   margin-top: -68px;
  }
</style>
</head>
<body>
<div id="Centralizar">

<table style="text-align: left; width: 800px; height: 236px;" border="1"
cellpadding="3" cellspacing="3">
  <tbody>
    <tr>
      <td style="width: 55%; text-align: center;"><img
style="width: 228px; height: 228px;" alt="" src="login.png"></td>
      <td style="width: 75%;">
      <div style="text-align: center;">
      <?php
         if ($erro==2) {
      ?>
       Senha inv&aacute;lida!!!
      <?php
         } elseif ($erro==3) {
      ?>
       Logout realizado com sucesso!!!
      <?php
         }
      ?>
      </div>
     <BR>
     Forneça sua senha para acesso:
     <BR>
      <form method="post" action="<?php echo $url; ?>">&nbsp; Senha: &nbsp;<input size="25" name="senha" id="senha"
type="tel"><br>
        <br>
        <div style="text-align: center;"><input name="Submit"
value="Entrar" type="submit"><input type="button" value="Voltar" onClick="location.href='../';">
        </div>
      </form>
      <form <input size="30"><br>
        <BR>
      

      
      
      </td>
    </tr>
  </tbody>
</table>
</div>
   </form>      </td>
    </tr>
  </tbody>
</table>
<br>
</body>
</html>
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

PHP: senha

Mensagempor rochinha » 03 Out 2020 11:25

Amiguinhos,

cjp
Verifique se as senhas sendo passadas estão com maiúsculas e minúsculas da mesma forma que está na tabela números.

Veja também se a variável $dados está trazendo os dados de filtragem.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

PHP: senha

Mensagempor mauricioportela » 04 Nov 2020 13:44

Ola!

Comecei a analisar o codigo mas, me esbarrei em alguns pontos:

* ausencia do arquivo conexao;
* por consequencia, dados da estrutura do bd, tabelas, etc ...

fiz comentarios no codigo.

ate mais!
Anexos
teste.php.txt
(4.67 KiB) Baixado 69 vezes
Avatar de usuário

mauricioportela
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 83
Data de registro: 29 Jul 2016 04:22
Cidade/Estado: Vitoria da Conquista/Bahia
Curtiu: 4 vezes
Mens.Curtidas: 21 vezes

PHP: senha

Mensagempor mauricioportela » 04 Nov 2020 13:50

[img]
teste_php_forum.png
[/img]
Anexos
teste_php_forum.png
Avatar de usuário

mauricioportela
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 83
Data de registro: 29 Jul 2016 04:22
Cidade/Estado: Vitoria da Conquista/Bahia
Curtiu: 4 vezes
Mens.Curtidas: 21 vezes

PHP: senha

Mensagempor mauricioportela » 04 Nov 2020 16:14

fiz algumas alteracoes.

tente mudar as chamada de 'mysql*' por 'mysqli*'

e o uso da funcao var_dump() é mais pra gerar saida na tela (debug).

vlw
Anexos
teste3.php.txt
(5.14 KiB) Baixado 65 vezes
Avatar de usuário

mauricioportela
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 83
Data de registro: 29 Jul 2016 04:22
Cidade/Estado: Vitoria da Conquista/Bahia
Curtiu: 4 vezes
Mens.Curtidas: 21 vezes

PHP: senha

Mensagempor cjp » 30 Dez 2020 01:07

Peço desculpas pela demora, mas só agora pude voltar a este post.

Testei este último exemplo do Maurício, mas não funcionou.

Primeiro, na tela que pede a senha, parece que tem algum erro, pois estão aparecendo algumas informações estranhas.

Segundo, o nome do usuário continua não aparecendo.

Testei o código assim:

<?php

    //
    // * Utilizando var_dump() para gerar saida na tela ...
    //
    // * Substituir as chamadas
    //      de  : mysql
    //      para: mysqli
    //

    session_start();

    $url   = 'mysql.inaciocarvalho.com.br';
    $user  = 'inacio';
    $pass  = '----------';
    $banco = 'inacio';

    if (!($conexao = mysqli_connect($url, $user, $pass, $banco))) {
        die('Sem conexao: ' . mysqli_error() . '<br>');
    } else {
        echo '<i>:: Conexao OK!</i><br>';
    }
    var_dump( $conexao );

    // declarando as variaveis faltantes para seguir com o teste ...
//    $_POST['usuario'] = 'admin';
//    $_POST['senha']   = 'xpto';
    $_POST['logout']  = '';
    $_POST['logout']  = 1;
   
    // condicao ternaria
    // senha = se( senha_true_em POST       ?  eh_POST          : (senao) eh_GET )
    $senha   = ( isset($_POST['senha']  ) ) ? $_POST['senha']   : $_GET['senha'];
    $usuario = ( isset($_POST['usuario']) ) ? $_POST['usuario'] : $_GET['usuario'];

    // pegando varivel global do servidor
    $url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];
    echo ":: URL:" . $url . "<br>";

    $erro = 0;
    $mensagem = '';
    // verificando se passou 'logout' por POST (modo velado) ou GET (eh mostrado na linha de endereco)
    $encerra = ( isset($_POST['logout']) ) ? $_POST['logout'] : $_GET['logout'];

    echo ":: Senha1:" . $senha . "<br>";
    if (!isset($_SESSION['s_login'])) {
        echo ":: Senha2:" . $senha ."<br>";

        if($senha) {
            echo ":: Senha3:" . $senha . "<br>";

            $SQL = "SELECT * FROM numeros WHERE senha = '". $senha . "'";
            var_dump($SQL);

            // $result_id = mysql_query($SQL) or die("Erro no banco de dados: ".$SQL);
            if ($result_id = $conexao->query($SQL)) {
                var_dump($result_id);
                $total = $result_id->num_rows;
                var_dump($total);
                echo ":: retornou " . $total . " linhas. <br>";
            }
            // var_dump($result_id);

            $total = mysqli_num_rows($result_id);
            echo ':: num rows total... <br>';
            var_dump($total);

            if($total) {
                $dados = mysqli_fetch_array($result_id);
                $usuario = $dados["usuario"];
                echo ":: Usuário2:" . $usuario . "<br>";

                $_SESSION['s_login'] = $senha;
                $_SESSION['nome_usuario'] = $usuario;
                header("Location: pontos.php");
                exit;
            } else {
                echo ":: Senha4:" . $senha . "<br>";
                if ((!$senha)) { $erro = 1; } else { $erro = 2; }
            }
        }
    } else {
        echo ":: Senha5:" . $senha . "<br>";
        echo ':: Valor de $encerra = ' . $encerra ;
        var_dump( $encerra );
        if ($encerra==1) {
            session_unset();
            session_destroy();
            $erro = 3;
        } else {
            // header("Location: pontos.php");
            // exit;
        }
    }
    if ($erro!=4) {
    }
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
        <title>Pontos</title>
        <style>
            #Centralizar { position: absolute; width: auto; height: auto; left: 30%; top:30%; margin-left: -250px; margin-top: -68px; }
        </style>
    </head>

    <body>
        <div id="Centralizar">
            <table style="text-align: left; width: 800px; height: 236px;" border="1" cellpadding="3" cellspacing="3">
                <tbody>
                    <tr>
                        <td style="width: 55%; text-align: center;"><img style="width: 228px; height: 228px;" alt="" src="login.png"></td>
                        <td style="width: 75%;">
                            <div style="text-align: center;">
                           
                                <?php
                                    if ( $erro == 2 ) {
                                        echo 'Senha inv&aacute;lida!!!';
                                    } elseif ( $erro == 3 ) {
                                        echo 'Logout realizado com sucesso!!!';
                                    }
                                ?>
                            </div>
                            Forneça sua senha para acesso:
                            <form method="post" action="<?php echo $url; ?>">
                                Senha: <input size="50" name="senha" id="senha" type="password">
                                <div style="text-align: center;">
                                    <input name="Submit" value="Entrar" type="submit">
                                    <input type="button" value="Voltar" onClick="location.href='../';">
                                </div>
                            </form>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
    </body>
</html>


Em relação ao que vc postou, alterei apenas três coisinhas:

1) tirei o pedido de usuário, pois quero pedir apenas a senha; o nome do usuário está no banco de dados;

2) troquei teste3.php por pontos.php, que é o php inicial que deve ser chamado depois de colocada a senha;

3) coloquei os dados do banco de dados.
Anexos
tela.png
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

PHP: senha

Mensagempor cjp » 30 Dez 2020 01:10

cjp
Verifique se as senhas sendo passadas estão com maiúsculas e minúsculas da mesma forma que está na tabela números.

Veja também se a variável $dados está trazendo os dados de filtragem.


As senhas são numéricas, então, estão corretas. Até porque, se digito a senha errada, ele aponta que está errada. Ou seja, a verificação no banco de dados está correta. Só não está retornando corretamente o nome do usuário.

Quanto ao $dados, não sei como fazer isso.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

PHP: senha

Mensagempor mauricioportela » 31 Dez 2020 16:41

Boa tarde cjp!

Não há erros no print da tela. Está correto. O que voce está vendo é a saída da função var_dump. Essa função é um depurador e mostra o valor da variável. Comente o comando e não vai mais aparecer na tela.

Mais informação aqui: https://www.php.net/manual/pt_BR/function.var-dump.php

Mauricio Portela
Avatar de usuário

mauricioportela
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 83
Data de registro: 29 Jul 2016 04:22
Cidade/Estado: Vitoria da Conquista/Bahia
Curtiu: 4 vezes
Mens.Curtidas: 21 vezes

PHP: senha

Mensagempor cjp » 31 Dez 2020 23:31

Verdade, desculpe.
Comentei o var_dump().
E acabei achando a solução para o problema principal: no php principal a variável estava escrito errada.
Obrigado.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes




Retornar para Outras linguagens de programação

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro