Ir para conteúdo

POWERED BY:

Arquivado

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

xarlington

Erro estranho no Wamp

Recommended Posts

Salve galera, estou criando um site em php aqui, antes funcionava tudo blzinha depois que formatei minha maquina instalei o WAMP Server, começou a aparecer esse erro "Notice: Undefined index: pg in C:\wamp\www\Curso de PHP\paginas.php on line 3", em todos os projetos que estou criando, o mais bizarro é que no Xamp Server funciona perfeito mas no Wamp fica dando esse erro, alguem faz ideia o que poderia esta acontecendo, obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que acontece é que você está usando uma variável que ainda não existe. Este erro já existia antes, mas estava configurado para não aparecer.

 

Faça testes de consistência antes de usar, tipo isset.

 

http://br.php.net/isset

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se postar a linha 3 fica mais fácil de saber o porque do erro...

 

Paginas.php

<?php 

switch ($_GET['pg']){
	
	case 'contato':
	include "contato.php";
	break;
	
	case 'servicos':
	include "servicos.php";
	break;
	
	case 'sobre':
	include "sobre.php";
	break;
	
	case 'portfolio':
	include "portfolio.php";
	break;
	
	case 'videos':
	include "videos.php";
	break;
	
	default:
	include ("home.php");
	break;
}
?>

Index.php

 

<?php
include "topo.php";

include "paginas.php";

include "rodape.php";
?>

O que acontece é que você está usando uma variável que ainda não existe. Este erro já existia antes, mas estava configurado para não aparecer.

 

Faça testes de consistência antes de usar, tipo isset.

 

http://br.php.net/isset

 

Carlos Eduardo

 

Ummm... e como faço para resolver esse bug?.. pq tipo no Xamp Server o site funciona limpo sem nenhum erro, agora quando testo ele no Wamp aparece esse bagaça, como eu poderia resolver isso?, teria que trocar alguma variavel.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ummm... e como faço para resolver esse bug?

 

Isto não é um bug... Com certeza aparece SOMENTE quando acessa a index, correto? Porque isto acontece? Porque não existe a $_GET['pg'], o que dispara o Notice. Para resolver, faça uma verificação de consistência.

 

Vou fazer de duas formas, sendo a primeira e a segunda exatamente a mesma coisa, somente escritas de outra forma.

if (isset($_GET['pg'])) $pg = $_GET['pg'];
else $pg = '';
switch ($pg){

 

Agora vou utilizar o if ternário. É a mesma coisa, mas escrita de uma forma mais elegante.

 

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

 

Se não entender, poste de novo

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Blza, sou uma duvida, eu tenho que colocar esse codigo na index, ou na paginas.php? e so mais uma pergunta, quando eu hospedar meu site num servidor, corro risco desses erros aparecerem la tambem?...

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tenho que colocar esse codigo na index, ou na paginas.php?

 

Se você está perguntando isto é porque você não entendeu o que o código faz...

 

switch ($_GET['pg']){

O que acontece... quando você tenta usar a $_GET['pg'] e ela não existe (ou seja, quando você acessa a página principal, que vai cair no default do seu switch) ele exibe o Notice, de variável indefinida. O que o código faz. Testa se a $_GET['pg'] foi definida. Se ela foi, atribui o valor dela para a $pg. Se ela não existir, ela atribui o vazio para a $pg. O teste para saber qual página exibir é feito com a $pg, que sempre vai existir, porque ela foi definida dentro do código. Entendeu agora? Se não entender, pergunta de novo sem problema, porque não adianta nada você copiar o código sem entender o que ele faz e qual a importância.

 

quando eu hospedar meu site num servidor, corro risco desses erros aparecerem la tambem?.

 

Provavelmente não, porque NORMALMENTE os servidores compartilhados estão configurados para não exibir NOTICE. Os erros continuam lá, só não serão exibidos.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra ainda continuo nao entendo esse codigo que você me passou, so gostaria de saber onde colocar o codigo, sou iniciante em linguagem php, e outra ninguem nasce sabendo tudo nesse mundo, porem agradeço pela suas dicas, irei continuar utilizando o xamp, ate resolver esse problema.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, estou tentando te ajudar. Este tipo de erro é muito comum as pessoas ignorarem, por não considerarem que vai afetar.

 

Sobre onde colocar, você tem o seu switch, certo? Troque a primeira linha dele por estas duas.

 

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

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

xarlington,

sugiro que estude desde o básico.

 

pra você ter uma idéia do nivel da sua duvida,

imagine uma pessoa entrar numa faculdade e ficar perguntando ao professor o que é "alfabeto".

 

está vendo esse trecho do seu próprio código ?

 

<?php 

switch ($_GET['pg']){
	
	case 'contato':
	include "contato.php";
	break;

 

apenas faça o que o foi sugerido:

<?php 

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

switch ($pg){

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sempre tive dificuldades para fazer switch por causa deste erro. Agora não terei mais problemas.

Obrigado pelas dicas.

 

:lock:

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.