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

Camuflando a barra de endereço


Frank K Hosaka

Pergunta

Hoje estudei o meu index.php, e eu vi na barra de endereço index.php?senha=1045 depois que eu digitei a senha correta. Eu fiquei perplexo e fiquei me perguntando como esconder a última parte do endereço "senha=1045". Pesquisei o Google, encontrei um camuflador, mas achei aquilo muito complicado. Assim eu decidi fazer o meu próprio código. Ele é bem meia boca, mas pelo menos não aparece mais "senha=1045" na barra de endereço.

index.php

<meta name="viewport" content="width=device-width, initial-scale=1">
<?php
$html="<table><form action='produto.php'><input type='submit' value='Produtos'></form>"
."<form action='fornecedores.php'><input type='submit' value='Fornecedores'></form>"
."<form action='pagar.php'><input type='submit' value='Pagar'></form>"
."<form action='orcamento.php'><input type='submit' value='Orçamento'></form>"
."<form action='entraproduto.php'><input type='submit' value='Entrar Produto'></form>"
."<form action='diario.php'><input type='submit' value='Diario'></form></table><br><br>";
if (substr($_SERVER["REQUEST_URI"],-9)<>"bem-vindo") {
	$senha=$_GET['senha'] ?? null;
	if (empty($senha)) 
	  {echo '<form>Senha: <input name="senha" id="senha" onchange="submit()" autocomplete="off"></form><script>senha.focus()</script>';} else
	  {if ($senha==1045) {header('location:index.php?bem-vindo');} else { header('location:index.php');}}}
	else {echo $html;}
?>

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 1

Usando apenas php
pra permanecer no arquivo index.php e mesmo assim carregar outras views, estude um pouco sobre MVC
A lógica é a seguinte:
php é interpretado/executado no servidor
html, css, js são interpretados no cliente(browser)

por isso a importância de separar a lógica(php)
da apresentação(html, css, js)

O php recebe uma requisição(ou nenhuma) e devolve uma resposta qualquer(ou nenhuma)
Então, o php acontece primeiro.
Quando você entra numa página qualquer(feita em php), o php foi executado lá no server e somente depois de entregar o que deveria, o browser carregou/intepretou o css, depois o html e por fim, carregou e executou o js

Então, pense que, pro seu sistema funcionar adequadamente, primeiro o php é executado(no servidor)
somente depois o front(css, html e js entregues ao browser).

A separação dessas camadas de responsabilidade são assim:
Controllers: camada da lógica (o que acontece primeiro), php
Views: conteúdo a ser entregue para o browser(css, html, js)
Models: a camada responsável por se comunicar com o database

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde, Wash, 

Eu fiz o seguinte código que chamei de _1.php:

<form action='<?php $_PHP_SELF ?>' method='POST'>
Senha <input id='senha' name='senha' autocomplete='off'>
<script>senha.focus();</script>
</form>
<?php
if (isset($_POST['senha'])) {if ($_POST['senha']==1045) {echo "parabéns";}}
?>

Ele funciona, o problema é que o input que pede a senha fica visível na tela. O jeito mais fácil de eliminar isso é chamando outra página. Gostaria de saber se existe algum macete para apagar o input e permanecer na mesma página _1.php, depois de entrar a senha correta.

Obrigado pela dica do POST.

----------------------------------

 

Em tempo, consegui resolver o problema:

 

_1.php

<body>
<form action='<?php $_PHP_SELF ?>' method='POST'>
Senha <input id='senha' name='senha' autocomplete='off'>
<script>senha.focus();</script>
</form></body>
<?php
if (isset($_POST['senha'])) {if ($_POST['senha']==1045)
	{echo "<script>document.body.innerHTML='';</script> acesso liberado!";}}
?>

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pelas intervenções, mas estou bem longe do protocolo da lógica e da segurança. Estou usando o famigerado método da tentativa e erro, eu sei que o meu de conhecimento é bem precário, mas pelo menos fico feliz quando as minhas gambiarras funcionam. Agora estou me adaptando ao método POST, mas na base da tentativa e erro, pois ainda não consigo enxergar quem é o servidor e quem é o clinte. Hoje vou publicar 'datepicker no PHP' nesse forum, e mostrar até onde eu consegui chegar nas minhas precárias leituras que o Google oferece.

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...