Ir para conteúdo

Arquivado

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

Tuk

[Resolvido] Notice: Undefined index: pg in

Recommended Posts

Bem pessoal,tava tentando aqui montar um potfólio em php, montei o paginas.php mais ele está dando erro.

 

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

	case 'sobre':
	include "sobre.php";
	break;
	
	case 'busca':
	include "busca.php";
	break;

	case 'contato':
	include "contato.php";
	break;
	
	case 'servicos':
	include "servicos.php";
	break;
	
	case 'portfolio':
	include "portfolio.php";
	break;
	
	case 'videos':
	include "videos.php";
	break;
	
	case 'contato':
	include "contato.php";
	break;
	
	default:
	include ("home.php");
	break;

}
?>

o erro : Notice: Undefined index: pg in C:\wamp\www\RM - portfolio\paginas.php on line 2

 

 

Ele até puxa a home.php quando eu entro no site, mais emcima fica esse erro, eu sei que pode parecer um erro muito basico, mais é que estou começando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troca:

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

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso porque você não verifica se $_GET['pg'] existe antes de usar. Você pode fazer verificações para evitar esses erros Notice.

Ex:

 

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

// agora sim você pode fazer o switch sem problemas.

switch( $pg ) {

/* */

}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então tenho que nular o $_GET pra fazer o switch, lembro que uma vez fiz direto e funcionou. Mais tudo bem. Obrigado

 

 

Resolvido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é 'anular', mas sim atribuir um valor default caso não exista o indice do array super global $_GET

 

veja que isso é apenas um Notice: não um Fatal error:

'na outra vez que você fez direto e funcionou', provavelmente o servidor não estava com todas as mensagens de erro habilitadas.

 

Estude php, ou 'programação básica', e verá que não faz sentido (falando em lógica), usar uma variável que não existe. Por isso o php te manda o Notice.

 

isset()

http://www.php.net/isset

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não vai aparecer, mas vai quebrar a app do mesmo jeito.

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.