Ir para conteúdo

Arquivado

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

Marcos Fernandes

Problema com Site(switch)!

Recommended Posts

Gente, sou iniciante no php, e estou com o seguinte problema:

 

Eu comecei a montar um site em php no qual fiz um arquivo index, que tem includes para o topo, paginas, e rodapé, depois fiz um arquivo(paginas), com um switch para acessar cada pagina, no caso home, serviços, galeria e contato, depois de tudo feito, até aparte do switch, eu faço uma pagina home que esta como default no meu switch e aparece a pagina, mas tambem aparece um erro dizendo que a variavel pg é invalida, abaixo vao os codigos...ajudem p.f!!

 

index.php

 

<?php

include "topo.php";

 

include "paginas.php";

 

include "rodape.php";

?>

 

paginas.php

 

<?php

 

switch ($_GET['pg']){

 

default:

include ("home.php");

break;

 

case 'servicos':

include "servicos.php";

break;

 

case 'galeria':

include "galeria.php";

break;

 

case 'contacto':

include "contacto.php";

break;

 

 

}

?>

css.php

 

<link href="css/topo.css" rel="stylesheet" type="text/css">

<link href="css/rodape.css" rel="stylesheet" type="text/css">

<link href="css/paginas.css" rel="stylesheet" type="text/css">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez seja simplesmente por que você não inseriu um parametro chamado pg para alimentar o $_GET. Defina um valor padrão para essa variável e retire o 'default' do switch:

 

$pg = "home.php"
if(isset($_GET['pg'])
$pg = $_GET['pg'];

switch($pg) { // substitua $_GET['pg'] por $pg
// ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez seja simplesmente por que você não inseriu um parametro chamado pg para alimentar o $_GET. Defina um valor padrão para essa variável e retire o 'default' do switch:

 

$pg = "home.php"
if(isset($_GET['pg'])
$pg = $_GET['pg'];

switch($pg) { // substitua $_GET['pg'] por $pg
// ...

 

Amigos, não deu nenhuma das alternativas, o que intriga, é que as paginas aparecem, tipo, topo, rodape e a home, mas da o bendito erro, vou colar ai embaixo pra vcs identificarem!!obrigado!!!

 

 

Notice: Undefined index: pg in C:\Programas\EasyPHP-5.3.5.0\www\Delfins projeto\paginas.php on line 4

Call Stack

# Time Memory Function Location

1 0.0003 329904 {main}( ) ..\index.php:0

2 0.0050 335560 include( 'C:\Programas\EasyPHP-5.3.5.0\www\Delfins projeto\paginas.php' ) ..\index.php:4

Dump $_SERVER

 

$_SERVER['REMOTE_ADDR'] =

 

 

 

string '127.0.0.1' (length=9)

 

$_SERVER['REQUEST_METHOD'] =

 

 

 

string 'GET' (length=3)

 

$_SERVER['REQUEST_URI'] =

 

 

 

string '/Delfins%20projeto/' (length=19)

 

Meu povo, consegui resolver assim...

 

$pg = (isset($_GET['pg'])) ? $_GET['pg'] : 'home';

switch ($pg){

 

 

 

case 'servicos':

include "servicos.php";

break;

 

case 'galeria':

include "galeria.php";

break;

 

case 'contacto':

include "contacto.php";

break;

 

default:

include ("home.php");

break;

 

 

 

}

?>

 

Obrigado pela atençao!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não faça desse jeito:

$pg = (isset($_GET['pg'])) ? $_GET['pg'] : 'home'; 

 

Pois assim você retira o valor padrão de $pg.

 

 

 

Do jeito que você está fazendo a coisa só vai se você colocar o parametro pg na url:

localhost/seu_site/index.php?pg=home

 

Coloque exatamente como se segue:

$pg = "home";
if(isset($_GET['pg']))
$pg = $_GET['pg'];

switch($pg) {
 case 'home':
 case 'servicos':
 case 'galeria':
 case 'contacto':
   include "{$pg}.php";
 break;

 default:
   header("HTTP/1.0 404 Not Found");
   echo "Desculpe, página \"{$pg}\" não encontrada.";
 break;
}






Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Noite! estava com o mesmo problema eu olhei as dicas e fiz uma misturada e deu certo.

A mensagem de erro só da por causa dessa linha switch ($_GET['pagina']){

 

Agora com problema resolvido resolvir compartilhar.

 

Veja o antes e o depois

ANTES

<?php

switch ($_GET['pagina']){

case 'show';

include "show.php";

break;

 

case 'eventos';

include "eventos.php";

break;

 

default:

include ("home.php");

break;

}

?>

DEPOIS

<?php

 

$pagina = "home.php";

if(isset($_GET['pagina']))

$pagina = $_GET['pagina'];

 

switch($pagina) {

 

case 'show';

include "show.php";

break;

 

case 'eventos';

include "eventos.php";

break;

 

default:

include ("home.php");

break;

}

 

?>

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.