NitroOx 0 Denunciar post Postado Outubro 5, 2012 Olá pessoal! Eu fiquei umas 2h+ já procurando isso e o máximo que achei foi esse código: <?php foreach ($_REQUEST as $___opt => $___val) { $$___opt = $___val; } if(empty($pag)) { include("home.php"); } elseif(substr($pag, 0, 4)=='http' or substr($pag, 0, 1)=="/" or substr($pag, 0, 1)==".") { echo '<br><font face=arial size=11px><br><b>A página não existe.</b><br>Por favor selecione uma página a partir do Menu Principal.</font>'; } else{ include("home.php"); } ?> Ele até funciona até certa parte. Porém, se eu colocar qualquer valor para o GET, ele me retorna um erro no php. Como eu poderia corrigir isso? Exemplo: index.php?pag=home <--- funciona (pagina "home.php" existe) index.php?pag=../ <--- funciona(previne xss) index.php?pag=123 <-- essa pagina nao existe e entao meu php retorna erro. Como eu poderia fazer ele redirecionar para uma pagina de erro? Espero que tenham entendido! Obrigado a todos! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Outubro 5, 2012 file_exists() Control Structures Compartilhar este post Link para o post Compartilhar em outros sites
deckards2bibi 1 Denunciar post Postado Outubro 5, 2012 ola meu caro nao sei se respondo sua pergunda mas quando faço paginas em php uso esse script é bom <div id="content"> <?php $link = $_GET["link"]; $pag[1] = "nav/home.php"; $pag[2] = "nav/empresa.php"; $pag[3] = "nav/servico.php"; $pag[4] = "nav/estudante.php"; $pag[5] = "nav/contato.php"; $pag[6] = "nav/cliente.php"; if (!empty($link)){ //se a variavel link nao estiver vazia !empty if (file_exists($pag[$link])){// se o arquivo existir include $pag[$link]; // ele inclui o arquivo }else{ include "nav/home.php"; } }else{ include "nav/home.php"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
NitroOx 0 Denunciar post Postado Outubro 5, 2012 Obrigado pelas respostas, estarei fazendo um teste com as duas. Compartilhar este post Link para o post Compartilhar em outros sites
deckards2bibi 1 Denunciar post Postado Outubro 5, 2012 Obrigado pelas respostas, estarei fazendo um teste com as duas. a um detalhe que esqueci quando você foi fazer os menus ou links pro mesmo site usa desta forma no meu caso defini a index.php entao fica assim <a href="index.php?link=1">home</a> isso quer dizer que vai pra pagina que contem o numero daquele codigo que passei ontem Compartilhar este post Link para o post Compartilhar em outros sites
NitroOx 0 Denunciar post Postado Outubro 5, 2012 Voltei :D Então galera, testei o que vocês me passaram e parece que deu certo. Porém, eu misturei os códigos. Parece que está funcionando tudo na boa, peço que olhem o código e me falem se existe alguma falha ou algum erro. É que sou iniciante ainda em php. <?php foreach ($_REQUEST as $___opt => $___val) { $$___opt = $___val; } if(empty($pag)) { include("home.php"); } elseif(substr($pag, 0, 4)=='http' or substr($pag, 0, 1)=="/" or substr($pag, 0, 1)==".") { include("erro.html"); } elseif(file_exists($pag.'.php')){// se o arquivo existir include("$pag.php"); // ele inclui o arquivo }else{ include("erro.html"); } ?> Na seguinte linha: elseif(file_exists($pag.'.php')){// se o arquivo existir O PHP colocava como se o arquivo não existisse, então, concatenei a variavel com o ".php" e acabou checando na boa. Obs: Nem sabia que podia concatena ali, foi no chute :D Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Barantini 33 Denunciar post Postado Outubro 5, 2012 Sei que o tópico já foi marcado como resolvido, mas gostaria de postar meu modo de uso também. É uma função mais simples do que essas que postaram. <?php $pag = $_GET['pag']; if($pag == NULL){ include "home.php"; } else { include $pag.".php"; ?> E chamo o link <a href="?pag=pagina">Página</a>. Compartilhar este post Link para o post Compartilhar em outros sites
Renato Valer 0 Denunciar post Postado Outubro 6, 2012 <?php $gxtpl = new gxtpl(); switch($_GET['page']) { case "home": $gxtpl->open("index"); break; case "userPanel": $gxtpl->open("userPanel"); break; default: $gxtpl->open("index"); break; } ?> Compartilhar este post Link para o post Compartilhar em outros sites