Ir para conteúdo

POWERED BY:

Arquivado

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

Floozie

[Resolvido] @ ?

Recommended Posts

Bom galera, estava programando um site aqui... fiz uma função querystring:

<?php

function QueryString($get, $inicio, $pasta){

$get = (isset($get)) ? $get : '';
$get = trim($get);
$get = strip_tags($get);

if(empty($get)){
	include "$pasta/$inicio";	
}
elseif(eregi("http|www|.php|.asp|.jpg|.exe|.gif|.js|.html|.net|.com|.png|.jpeg|./", $get)){
	include "$pasta/$inicio";
}
elseif(!file_exists("$pasta/$get.php")){
	include "$pasta/$inicio";	
}
else {
	include "$pasta/$get.php";
}

}

?>

 

E no index.php, coloquei na div do conteúdo o seguinte:

QueryString($_GET['page'], "home.php", "pages");

 

Ao testar se estava funcionando.. me apareceu a seguinte mensagem:

 

( ! ) Notice: Undefined index: page in C:\Program Files (x86)\VertrigoServ\www\xxxxxxxxx\index.php on line 51
Call Stack
#	Time	Memory	Function	Location
1	0.0003	328584	{main}( )	..\index.php:0

 

Vendo esse código, após ver outros códigos de CSS, tentei colocar o @ antes do 'QueryString' e esse erro desapareu. Gostaria de saber qual a função desse @ e o que fazer parar não ter que ficar usando-o novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ignora os erros, como também os esconde .. não use isso, se tiver erro no código, resolva-o.

Esse erro:

( ! ) Notice: Undefined index: page in C:\Program Files (x86)\VertrigoServ\www\xxxxxxxxx\index.php on line 51
Call Stack
#	Time	Memory	Function	Location
1	0.0003	328584	{main}( )	..\index.php:0

Quer dizer que existe um índice indefinido, como 'page', ou seja, o valor do teu get não foi enviado

 

E no index.php, coloquei na div do conteúdo o seguinte:

QueryString($_GET['page'], "home.php", "pages");

 

Faça assim:

QueryString( isset( $_GET[ 'page' ] ) ? $_GET[ 'page' ] : NULL, 'home.php', 'pages' ); 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como posso resolver esse erro ? Não entendi muito bem o problema..

 

Logo no começo do index.php, coloquei o include "querystring.php"; e logo em seguida puxei a função.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, basta definir o índice, na URL você não está enviando o page .. ou seja

o GET tenta recuperar ele, mais ele não vai existir no array da SuperGlobal GET ..

Antes de chamar a função, faz isso pra você ver.

echo '<pre>', var_dump( $_GET );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tinha respondido antes de você ter editado o post.

 

Mas então... Lógico que ele não vai estar com o get 'page' definido se eu estarei acessando o index.php, apenas. Então se eu colocar o @ para esconder esse errinho bobo, não acarretará problemas futuros, certo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ é um supressor de erros.

 

a forma elegante de resolver, é testar se existe antes de usar.

$page = isset( $_GET[ 'page' ] ) ? $_GET[ 'page' ] : NULL;
QueryString( $page, 'home.php', 'pages' ); 

 

não use @, não varra os 'erros' por mais bobos que possam parecer para 'debaixo do tapete'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi agora, fiz da mesma forma que o Andrey postou e que também é parecida com a sua William, e resolvido.

 

Obrigado aos dois o/

 

Abraços;

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.