Floozie 0 Denunciar post Postado Julho 6, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Julho 6, 2011 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
Floozie 0 Denunciar post Postado Julho 6, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Julho 6, 2011 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
Floozie 0 Denunciar post Postado Julho 6, 2011 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
William Bruno 1501 Denunciar post Postado Julho 6, 2011 @ é 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
Floozie 0 Denunciar post Postado Julho 6, 2011 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