Ir para conteúdo

POWERED BY:

Arquivado

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

NgM_Me_KuRtE

[Resolvido] chamar páginas

Recommended Posts

Boas pessoal. É assim eu tenho este script que funciona perfeitamente, mas o que eu gostaria de saber é como é que faço para caso ele chame por exemplo por uma página que não exista, em vez de aparecer erro, chamar a página error.php

 

Aqui deixo o código

 

<?php
if (!isset($_GET['c'])) {
 include ("modulos/principal.php");	
} else {	
 include ("modulos/$_GET[c].php");
}
?>

 

Agradeço desde já a ajuda :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso, creio eu que o melhor método seja utilizar o switch.

 

Seria algo assim:

 

$get = $_GET['c'];

switch($get){
    case 'valor_do_get':
    $include = "pagina.php";
    break;

    default:
    $include = "erro.php"
    break;

    include $include;
}

 

No exemplo acima funcionaria mais ou menos assim:

 

valor_do_get = Se o valor do GET for o numero '3' e aquele 'case' estiver como "case 3:" então ele inclui a página.php atravéz de um include.

 

default = página padrão. Por exemplo: se o GET tiver com o valor vazio, ou com um valor que não seja de nenhum 'case' ele vai retornar a página de erro, já que não tem página nenhuma para incluir.

 

Da uma olhada no manual do PHP.net que tem uns exemplos mais detalhados. :)

http://php.net/manual/en/control-structures.switch.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá.... mas esse código que você deu irá dar para inserir os 3 ficheiros? ou seja, no meu código ele chama logo o principal.php, consoante ao carregar no menu, ele vai buscar a página à pasta módulos. Nesse caso irá para ir chamar a 3º página? neste caso seria a error.php pois se escolher um menu e que a página não exista ainda iria aparecer a página error.php

 

E obrigado pela ajuda desde já :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

$get = $_GET['c'];

if(!isset($get)){
   $include = "principal.php";
   }else{

switch($get){

   case 'pagina_1':
   $include = "pagina_1.php";
   break;

   case 'pagina_2':
   $include = "pagina_1.php";
   break;

   case 'pagina_3':
   $include = "pagina_1.php";
   break;

   default:
   $include = "erro.php";
   break;

   }
   }

   include $include;

 

Se o código acima estivesse na página index.php, por exemplo:

 

index.php = include "principal.php"

index.php?c=pagina_1 = include "pagina_1.php"

index.php?c=pagina_2 = include "pagina_2.php"

index.php?c=pagina_3 = include "pagina_3.php"

 

index.php?c= = include "erro.php" ou

index.php?c=100 = include "erro.php"

 

Basicamente qualquer case que não existisse ele daria um include na pagina erro.php, e por padrão o include vai na pagina principal.php

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.