Ir ao conteúdo
  • Cadastre-se

Problema ao exibir a página principal (php)


Cassia Reis

Posts recomendados

Olá amigos, bom dia.

Estou fazendo uma videoaula de php e mysql e está dando tudo certo, exceto por uma coisa: quero exibir a página home, criei um switch case para isso, mas sempre aparece esse erro:

Notice: Undefined index: pg in C:\xampp\htdocs\projeto_final\paginas.php on line 2

A página home cai em um default, não entendo o porquê do erro, sendo que fiz igual à videoaula, e lá dá certo, e no meu não funciona.

Aqui estão os códigos:

index.php


<?
include "topo.php";

include "paginas.php";

include "rodape.php";

?>

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



home.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Untitled Document</title>
</head>

<?
include "css.php";
?>
<body>

<div id="fundo_paginas">

<div id="geral_paginas">

<div id="menu">

</div><!--menu-->

<div id="conteudo">

</div><!--conteudo-->

<div style="clear:both"></div>

</div><!--geral-->

</div><!--fundo_paginas-->

</body>

</html>





paginas.php


<?
switch($_GET['pg']){



case 'contato':
include "contato.php";
break;

case 'servicos':
include "servicos.php";
break;

case 'portfolio':
include "portfolio.php";
break;

default:
include ("home.php");
break;
}

?>

paginas.css


/*CSS Document*/

#fundo_paginas{
background:#16428c;
}

#conteudo{
width:557px;
height:357px;
background:#375d9c;
float:left;
}

#geral_paginas{
width:800px;
margin:0 auto;
padding-bottom:10px;
padding-top:10px;
}

#menu{
width:175px;
height:300px;
float:left;
margin-right:40px;
}

Se alguém puder me ajudar, eu agradeço.

Link para o comentário
Compartilhar em outros sites

Cassia,

Esse erro acontece por causa de uma configuração do PHP chamada de error_reporting. Essa configuração é responsável pela definição de qual tipo de erro o Apache irá emitir.

Na configuração 'padrão', essa configuração vem definida para exibir Notices. São avisos de 'programação ruim'. Não é um erro de sintaxe mas um erro de 'costume'.

Nesse caso, o erro está dizendo que na linha 2 do arquivo paginas.php:

<?
[B][COLOR="Red"] switch($_GET['pg']){[/COLOR][/B]

Você está usando a variavel $_GET['pg'] sem saber se ela realmente existe. Isso é um erro de prática ruim. Você precisa garantir que a variável existe para que o código funcione. Para isso, basta verificar:

<?
[B][COLOR="Red"] if(isset($_GET['pg'])) switch($_GET['pg']){[/COLOR][/B]

Pronto, agora você verifica se a variável existe e o código não dará mais erro.

Ou, você pode tirar os erros error_reporting na configuração do php (pesquise no google). Pois é provavelmente com essa configuração que a video-aula foi feita.

Abraços!

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...