Ir para conteúdo
  • Cadastre-se

Atualizar a pagina utilizando GET


Posts Recomendados

Olá pessoal, estou aqui para resolver um probleminha que tenho encontrado principalmente no meu curso, então estou criando esse tópico para facilitar um pouco a vida dessas pessoas que estão boiando na maionese. É o seguinte:

Para facilitar um pouco nosso trabalho, utilizamos GET para obter o valor de uma váriavel na url para que possa abrir uma determinada pagina sem atualiza o site por completo.

O pessoal do meu curso está utilizando o GET dessa forma:

 

Código HTML:
<?php
if(isset($_GET['pagina']) == ' '){ // Se ?pagina= nao for definido nao faça nada, caso tenha um valor procura no switch esse valor e executa-o.
}else{
   $pagina = $_GET['pagina'];
   switch($pagina){
      case 'home':
         include 'home.php';
      break;
      default: echo 'pagina nao encontrada';
   }
}
?>

Isso está errado ?
Não, isto não está errado, mas imagine o seguinte, você tem a pagina home,registro,download, e várias outras, ou seja, vc teria de adicionar uma por uma no switch() para que ele possa saber o que fazer com aquele valor.

Enfim, isso daria um problemão pra cabeça, então eu recomendo vocês fazerem o seguinte:

 

Código HTML:
if(!isset($_GET['pagina']) == ' '){ //Se ?pagina= for diferente de não definido
   $abrir = $_GET['pagina']; // Abrir obtém seu valor ou seja se for ?pagina=home, $abrir passa a valer home
   $local = $abrir.'.php'; // $local = home.php
   if(file_exists($local)){ // Se home.php existir
      include $local; // inclui home.php
   }else{ // se não
      echo 'pagina não encontra'; // pagina não encontrada
   }
}

É basicamente a mesma coisa a única diferença é que ao invés dele procurar no switch() ele vai verificar se o arquivo existe file_exists(), se existir vai abrir ele, se não, mostrar uma mensagem de pagina não encontrada !

abrçs!!!

 

I must not fear. Fear is the mind killer.

Link para o post
Compartilhar em outros sites
  • 3 weeks later...

Interessante esse código, mas mesmo assim ainda contém uma vulnerabilidade, porque ele checa se há o arquivo .php e assim carrega ele.

Já usei muito nos meus sistemas dessa forma que você fez, mas já tive problemas, a melhor solução que eu desenvolvi foi assim:

<?php
header("Content-Type: text/html; charset=UTF-8", true);

$pagina 	= $_GET['pagina'];
$extensao 	= '.php';
$items 		= array('index', 'teste', 'contato');

if( in_array($pagina, $items) && file_exists($pagina.$extensao) )
{
	// Ok, a gente inclui a página
	include_once $pagina.$extensao;
}
else
{
	// Erro, ou damos a mensagem ou incluimos uma página padrão
	exit('A página solicitada não existe!');
}
?>

Dessa forma ele checa se o item passado pelo GET está dentro do vetor predefinido por você e ainda assim checa se há o arquivo, dessa maneira, evitamos que o "hacker" force o sistema a incluir arquivos do servidor.

rxtoGjF.jpg 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo