Jhonei 0 Denunciar post Postado Maio 16, 2012 Galera eu tenho um problema mais não sei em que parte destes códigos!! O menu Horizontal está funcionando perfeitamente, mas o vertical não!! Ele fica acrescentando um "home" a mais a cada link clicado nele!! Abaixo estão todos os scripts necessários... Query string: <?php $pagina = isset($_GET['pagina']) ? strip_tags(trim($_GET['pagina'])) : ''; $conteudo = isset($_GET['conteudo']) ? strip_tags(trim($_GET['conteudo'])) : ''; if ($pagina == "$pagina" && !$conteudo) { $Pg = 'arquivos/'.$pagina.'.php'; } elseif ($pagina == "$pagina" && $conteudo == "$conteudo") { $SubPg = 'conteudo/'.$conteudo.'.php'; } ?> Htaccess: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z,0-9,A-Z]+)\/([a-z,0-9,A-Z]+)\/?$ ?pagina=$1&conteudo=$2 RewriteRule ^([a-z,0-9,A-Z]+)\/?$ ?pagina=$1 Menu Horizontal: <td><a href="home">Home</a></td> <td><a href="perfil">Perfil</a></td> <td><a href="fotos">Fotos</a></td> <td><a href="videos">Videos</a></td> <td><a href="faleconosco">Fale Conosco</a></td> Menu Vertical: <tr> <td id="menu_vertical"><a href="home/esporte">Esporte</a></td> </tr> <tr> <td id="menu_vertical"><a href="home/cultura">Cultura</a></td> </tr> <tr> <td id="menu_vertical"><a href="home/natureza">Natureza</a></td> </tr> <tr> <td id="menu_vertical"><a href="home/religiao">Religião</a></td> </tr> <tr> <td id="menu_vertical"><a href="home/politica">Política</a></td> </tr> Exemplo deste script funcionado online aqui: http://exemplos.orgfree.com/ Caso queiram ver como é o defeito cliquem em mais de um link do menu vertical!! Grato desde já pela ajuda dos senhores!!! Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Maio 16, 2012 Mude os menus para ficarem dessa forma <td id="menu_vertical"><a href="/home/esporte">Esporte</a></td> Ou defina uma tag base no HTML da página. Compartilhar este post Link para o post Compartilhar em outros sites
Jhonei 0 Denunciar post Postado Maio 16, 2012 Agradeço pela ajuda "Henrique Barcelos", mas o erro ainda não é este!! Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Maio 16, 2012 O que você fez? Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Maio 17, 2012 Cara, que verificação é essa ? o.o elseif ( ... $conteudo == "$conteudo") { Porque não faz algo assim: RewriteRule ^page/([a-zA-Z0-9-]+)$ index.php?page=$1 Daí no seu index.php, faz um include ... <?php $page = isset ( $_REQUEST [ 'page' ] ) ? $_REQUEST [ 'page' ] : 'home' ; if ( $page !== 'home' && strlen ( $page ) > 0 ) { $file = sprintf ( '%s.php' , $page ) ; if ( file_exists ( $file ) ) { require_once $file ; } else { } } else { } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Jhonei 0 Denunciar post Postado Maio 20, 2012 "Henrique Barcelos" Desta forma foi que não funcionou mesmo, porque ele não estava incluindo o "/home/esporte" e sim trocando toda a url por "/home/esporte". Mude os menus para ficarem dessa forma <td id="menu_vertical"><a href="/home/esporte">Esporte</a></td> O defeito não está na url em si (exe: www.exesplos.orgfree.com). Mas sim, na complementação dela com as novas páginas requisitadas!! (exe: www.exesplos.orgfree.com/home/esporte) Ou defina uma tag base no HTML da página. E "Andrey Knupp" Cara, que verificação é essa ? o.o elseif ( ... $conteudo == "$conteudo") { Esta não é a verificação!! Esta linha de script manda a página solicitada para a verificação que fica no include onde a página vai ser carregada.. Note que o query string possui duas avaliações, a primeira "if", avalia a seção, ou seja, a página que jogará para o include $Pg, e a segunda avaliação "elseif", avalia a SubSeção, ou seja, a página que será redirecionada para o include $SubPg. page index.php: <td id="loader_menu_horizontal"> <?php if( (isset($Pg)) and (file_exists($Pg)) ) { include($Pg); } else { include ("arquivos/home.php"); } ?> </td> page home.php: <td id="loader_menu_vertical"> <?php if( (isset($SubPg)) and (file_exists($SubPg)) ) { include($SubPg); } else { include ("conteudo/inicio.php"); } ?> </td> Eu prefiro não fazer desse geito porque ao por "^page/([a-zA-Z0-9-]+)$ index.php?page=$1", na url ficara aparecendo o nome do diretório e desta forma facilitara invasões por hacker.. Porque não faz algo assim: RewriteRule ^page/([a-zA-Z0-9-]+)$ index.php?page=$1 Eu já tenho o include, como disse no comentário a sima!! Daí no seu index.php, faz um include ... <?php $page = isset ( $_REQUEST [ 'page' ] ) ? $_REQUEST [ 'page' ] : 'home' ; if ( $page !== 'home' && strlen ( $page ) > 0 ) { $file = sprintf ( '%s.php' , $page ) ; if ( file_exists ( $file ) ) { require_once $file ; } else { } } else { } ?> Para mais transparência na compreensão dos senhores, aqui estão as páginas que carregarão o conteúdo:: index: <?php include "query_string.php" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Query string</title> </head> <body> <table width="100%" height="1050px" border="1" cellspacing="0" cellpadding="0"> <tr> <th height="200px" colspan="5"><h1>Titulo</h1></th> </tr> <tr id="menu_horizontal" align="center" height="30px"> <td><a href="home">Home</a></td> <td><a href="perfil">Perfil</a></td> <td><a href="fotos">Fotos</a></td> <td><a href="videos">Videos</a></td> <td><a href="faleconosco">Fale Conosco</a></td> </tr> <tr> <td id="loader_menu_horizontal" height="800px" align="center" colspan="5"> <?php if( (isset($Pg)) and (file_exists($Pg)) ) { include($Pg); } else { include ("arquivos/home.php"); } ?> </td> </tr> <tr> <td height="20px" colspan="5" align="center">Roda pé</td> </tr> </table> </body> </html> home: <table width="100%" height="100%" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="18%" id="menu_vertical" align="center" style="height:30px; padding-left:10px; text-align:left;"><a href="/home/educacao">Educação</a></td> <td id="loader_menu_vertical" rowspan="7" align="center"> <?php if( (isset($SubPg)) and (file_exists($SubPg)) ) { include($SubPg); } else { include ("conteudo/inicio.php"); } ?> </td> </tr> <tr> <td id="menu_vertical" align="center" style="height:30px; padding-left:10px; text-align:left;"><a href="home/esporte">Esporte</a></td> </tr> <tr> <td id="menu_vertical" align="center" style="height:30px; padding-left:10px; text-align:left;"><a href="home/cultura">Cultura</a></td> </tr> <tr> <td id="menu_vertical" align="center" style="height:30px; padding-left:10px; text-align:left;"><a href="home/natureza">Natureza</a></td> </tr> <tr> <td id="menu_vertical" align="center" style="height:30px; padding-left:10px; text-align:left;"><a href="home/religiao">Religião</a></td> </tr> <tr> <td id="menu_vertical" align="center" style="height:30px; padding-left:10px; text-align:left;"><a href="home/politica">Política</a></td> </tr> <tr> <td></td> </tr> </table> link do exemplo rodando online: http://exemplos.orgfree.com/ E ai galera alguém teria algum comentário sobre esta situação?? Realmente estou precisando da ajuda de vocês!! Compartilhar este post Link para o post Compartilhar em outros sites
Jhonei 0 Denunciar post Postado Maio 22, 2012 Henrique Barcelos desculpe por: Agradeço pela ajuda "Henrique Barcelos", mas o erro ainda não é este!! "Henrique Barcelos" Desta forma foi que não funcionou mesmo, porque ele não estava incluindo o "/home/esporte" e sim trocando toda a url por "/home/esporte". Mude os menus para ficarem dessa forma <td id="menu_vertical"><a href="/home/esporte">Esporte</a></td> Mas era porque eu estava testando o script no meu servidor WampServer configurado para rodar htaccess, mas por algum motivo não rodou quando pus /home/blablabla, ou seja, ele não estava incluindo o "/home/esporte" e sim trocando toda a url por "/home/esporte". Mas no servidor online que é o importante rodou normalmente!!! Estou muito grato pela sua ajuda!! E desculpa pela ignorância, mas sou novo na área e não tenho experiencia!! Compartilhar este post Link para o post Compartilhar em outros sites