Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos Barbosa

Não mostrar o caminho e o na url

Recommended Posts

Pessoal, como eu faço para não aparecer na url o caminho e o id, tipo

site/index.php?pg=vitrine&id=2

site/index.php?pg=loja&id=3

 

 

E sim:

site/vitrine

site/loja

 

Eu sei como fazer com o Jquery, colocando tudo na div conteudo. Mas aí, fica assim:

site/#

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, como eu faço para não aparecer na url o caminho e o id, tipo

site/index.php?pg=vitrine&id=2

site/index.php?pg=loja&id=3

 

 

E sim:

site/vitrine

site/loja

 

Eu sei como fazer com o Jquery, colocando tudo na div conteudo. Mas aí, fica assim:

site/#

coloca o codigo que você esta usando por assim fica difícil de entender

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
include("header.php");
include("menu_esquerdo.php")
?>           
           <!-- INCIO DA CONTEUDO -->



<div id="conteudo">

   <div id="ofetar_banner">
     <img src="images/banner_princ.jpg" alt="Izabelle Nossa - Destaques"/> 
   </div><!--<div id="ofetar_banner"> -->


   <?php 
   $atual 	  = (isset($_GET['pg'])) ? $_GET['pg'] : 'conteudo';
   $permissao = array('conteudo','vitrine','error');
   $pasta     = 'nav';

   if(substr_count($atual,'/') > 0){
	   $atual = explode('/', $atual);
	   $pagina = (file_exists("{$pasta}/".$atual[0].'.php') && in_array($atual[0], $permissao)) ? $atual[0] : 'erro';
	   $id = intval($atual[1]);
   } else {
	   $pagina = (file_exists("{$pasta}/".$atual.'.php') && in_array($atual, $permissao)) ? $atual : 'erro';
	   $id = 0;
   }

   require("{$pasta}/{$pagina}.php");


</div> <!--<div id="conteudo"> -->


<?php
include("menu_direito.php");
?>  

<?php
include("footer.php");
?> 

 

MENU ESQUERDO

<div id="menu_left">
           	<!--LISTAGEM DAS CATEGORIAS CADASTRADAS -->
           	 <div id="categoria">
                	<div class="titulo">Categoria</div><!--<div class="titulo"> -->
                    <ul>
					 <?php 
						$select = $conecta->executa_query("SELECT * FROM lj_categoria ORDER BY nome_categoria");
						$i++;

						while ($rs = mysql_fetch_array($select)){
							$i++
                           ?>

                           <li><a href="index.php?pg=vitrine&id=<?php echo $rs['id_categoria']; ?>"><?php echo $rs['nome_categoria'] ?></a></li>
                        <?php } ?>
                    </ul>
                </div><!--<div id="categoria">-->
...
...

 

O código é esse..

 

utilize URL amigáveis (URL Rewrite)

 

Segue um artigo:

URL Rewriting: Criando URLs competitivas!

Vou ler o artigo...

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente usar assim eu acho que fica melhor e mais seguro contra invasões de injection sql olha o codigo abaixo so um teste depois so alterar os caminhos e os nomes

 

menu.php

<html>
<body>
<div id="menu">
 <div id="dentromenu">
   <a href="?pagina=home" class="links">Home</a>
   <a href="?pagina=conteudo" class="links">Conteudo</a>
   <a href="?pagina=cadastrar" class="links">Cadastrar</a>
   <a href="?pagina=sobreosite" class="links">Sobre o Site</a>
   <a href="?pagina=chatonline" class="links">Chat Online</a>
   <a href="?pagina=lideresdaliga" class="links">Lideres da Liga</a>
   <a href="?pagina=banners" class="links">Banners</a>
   <a href="?pagina=contato" class="links">Contato</a>
   <a href="?pagina=comentarios" class="links">Comentarios</a>
   <a href="?pagina=tutoriais" class="links">Tutoriais</a>    
 </div>
</div>
</body>
</html>

 

 

Esse codigo que ira fazer a função para cada pagina e prevenir ataques do tipo injection sql depois so trocar os caminhos onde você vai usar esse codigo

 

fundo.php

<html>
<body>
<?php
if (isset($_GET['pagina'])) {
switch ($_GET['pagina'])
{
case 'home';
include "home.php";
break;

case 'conteudo';
include "conteudo.php";
break;

case 'cadastrar';
include "cadastrar.php";
break;

case 'sobreosite';
include "sobreosite.php";
break;

case 'chatonline';
include "chatonline.php";
break;

case 'lideresdaliga';
include "lideresdaliga.php";
break;

case 'banners';
include "banners.php";
break;

case 'contato';
include "contato.php";
break;

case 'comentarios';
include "comentarios.php";
break;

case 'tutoriais';
include "tutoriais.php";
break;

default:
include ("home.php");
break;	
}
   } else {

include ("home.php");

}
?>
</body>
</html>

 

PRONTO ESPERO TER AJUDADO SO ALTERE OS CAMINHOS SE DER ALGUM ERRO MANDA UM E-MAIL PARA ronal_dinho1998@hotmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente usar assim eu acho que fica melhor e mais seguro contra invasões de injection sql olha o codigo abaixo so um teste depois so alterar os caminhos e os nomes

 

menu.php

<html>
<body>
<div id="menu">
 <div id="dentromenu">
   <a href="?pagina=home" class="links">Home</a>
   <a href="?pagina=conteudo" class="links">Conteudo</a>
   <a href="?pagina=cadastrar" class="links">Cadastrar</a>
   <a href="?pagina=sobreosite" class="links">Sobre o Site</a>
   <a href="?pagina=chatonline" class="links">Chat Online</a>
   <a href="?pagina=lideresdaliga" class="links">Lideres da Liga</a>
   <a href="?pagina=banners" class="links">Banners</a>
   <a href="?pagina=contato" class="links">Contato</a>
   <a href="?pagina=comentarios" class="links">Comentarios</a>
   <a href="?pagina=tutoriais" class="links">Tutoriais</a>    
 </div>
</div>
</body>
</html>

 

 

Esse codigo que ira fazer a função para cada pagina e prevenir ataques do tipo injection sql depois so trocar os caminhos onde você vai usar esse codigo

 

fundo.php

<html>
<body>
<?php
if (isset($_GET['pagina'])) {
switch ($_GET['pagina'])
{
case 'home';
include "home.php";
break;

case 'conteudo';
include "conteudo.php";
break;

case 'cadastrar';
include "cadastrar.php";
break;

case 'sobreosite';
include "sobreosite.php";
break;

case 'chatonline';
include "chatonline.php";
break;

case 'lideresdaliga';
include "lideresdaliga.php";
break;

case 'banners';
include "banners.php";
break;

case 'contato';
include "contato.php";
break;

case 'comentarios';
include "comentarios.php";
break;

case 'tutoriais';
include "tutoriais.php";
break;

default:
include ("home.php");
break;	
}
   } else {

include ("home.php");

}
?>
</body>
</html>

 

PRONTO ESPERO TER AJUDADO SO ALTERE OS CAMINHOS SE DER ALGUM ERRO MANDA UM E-MAIL PARA ronal_dinho1998@hotmail.com

 

Mesmo assim se eu passar um parametro tipo id=2, ele motra lá na url, tem alguma forma de não mostrar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu já falei, URL Rewrite

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu já falei, URL Rewrite

 

Gabriel, eu estou lendo sobre o Rewrite, se você puder me dizer onde estou errando, lhe agradeço.

Bem fiz assim:

1° entri no httpd.conf e habilitei a linha

LoadModule rewrite_module modules/mod_rewrite.so

 

A linha

AddModule mod_rewrite.c

 

Não tem, posso acrescentar ?

 

2° Fiz o .htaccess com as seguintes instruções

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?pg=$1

 

3° no index.php eu coloquei

  <?php

$link = $_GET['pg']; 
if($link == ""){
   include("nav/conteudo.php");
}elseif(file_exists("nav/$link.php")){
   include("nav/$link.php");
}else{
   echo "<h3>Página não existe ou está em contrução </h3>";
}

 

Mesmo assim a url está assim:

http://localhost/IzabelleNossa/lojanossa/index.php?pg=vitrine&id=2

 

Gostaria que não aparecesse o .php no index e de preferencia não aparecesse o id.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A linha

AddModule mod_rewrite.c

 

Não tem, posso acrescentar ?

Não. Na versão 2.x do apache não é necessário incluir/alterar essa linha. Basta somente descomentar o carregamento do módulo.

LoadModule rewrite_module modules/mod_rewrite.so

 

Bom, deixarei um código que eu criei e testei no Wamp Server:

 

.htaccess

RewriteEngine On
RewriteRule  ^noticia$ index.php?id=lol
RewriteRule  ^noticia\/teste\/([a-z0-9_-]+)?$ noticia.php?id=$1

 

index.php

<html>
   <head>
       <title>teste</title>

   </head>
   <body>
       Dump do $_GET: <?php var_dump( $_GET ); ?>
   </body>
</html>

 

noticia.php

<html>
   <head>
       <title>teste</title>

   </head>
   <body>
       Dump da página de notícia do $_GET: <?php var_dump( $_GET ); ?>
   </body>
</html>

Digamos que você usou isso no seu server wamp na pasta teste.

 

Então você irá acessar por http://localhost/teste

 

Caso você acessar http://localhost/teste/noticia

O $_GET recerá a variável id com valor 'lol'

Saída esperada:

Dump do $_GET:
array
 'id' => string 'lol' (length=3)

 

Agora, caso você acessar o link http://localhost/teste/noticia/teste/[a-z0-9_-]+

Ele passará o valor, casado na expressão regular, para a variável $_GET.

Como no exemplo, acessando o link http://localhost/urlrewriting/noticia/teste/15abc

Dump da página de notícia do $_GET:
array
 'id' => string '15abc' (length=5)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. Na versão 2.x do apache não é necessário incluir/alterar essa linha. Basta somente descomentar o carregamento do módulo.

LoadModule rewrite_module modules/mod_rewrite.so

 

Bom, deixarei um código que eu criei e testei no Wamp Server:

 

.htaccess

RewriteEngine On
RewriteRule  ^noticia$ index.php?id=lol
RewriteRule  ^noticia\/teste\/([a-z0-9_-]+)?$ noticia.php?id=$1

 

index.php

<html>
   <head>
       <title>teste</title>

   </head>
   <body>
       Dump do $_GET: <?php var_dump( $_GET ); ?>
   </body>
</html>

 

noticia.php

<html>
   <head>
       <title>teste</title>

   </head>
   <body>
       Dump da página de notícia do $_GET: <?php var_dump( $_GET ); ?>
   </body>
</html>

Digamos que você usou isso no seu server wamp na pasta teste.

 

Então você irá acessar por http://localhost/teste

 

Caso você acessar http://localhost/teste/noticia

O $_GET recerá a variável id com valor 'lol'

Saída esperada:

Dump do $_GET:
array
 'id' => string 'lol' (length=3)

 

Agora, caso você acessar o link http://localhost/teste/noticia/teste/[a-z0-9_-]+

Ele passará o valor, casado na expressão regular, para a variável $_GET.

Como no exemplo, acessando o link http://localhost/urlrewriting/noticia/teste/15abc

Dump da página de notícia do $_GET:
array
 'id' => string '15abc' (length=5)

 

Vou fazer igual e ler mais algumas coisas, depois posto o resultado...

Obrigado a todos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como faz alguns anos que estudei URL Rewrite, meus artigos estão meio desatualizados. Mas testei novamente no wamp server e tudo certo.

 

Isso que está ai, é o básico. Com os uso de expressões regulares e, porque não, imaginação, da para fazer muita coisa. E resto cabe a você.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gabriel, eu estou lendo sobre o Rewrite, se você puder me dizer onde estou errando, lhe agradeço.

Bem fiz assim:

1° entri no httpd.conf e habilitei a linha

LoadModule rewrite_module modules/mod_rewrite.so

 

A linha

AddModule mod_rewrite.c

 

Não tem, posso acrescentar ?

 

2° Fiz o .htaccess com as seguintes instruções

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?pg=$1

 

3° no index.php eu coloquei

  <?php

$link = $_GET['pg']; 
if($link == ""){
   include("nav/conteudo.php");
}elseif(file_exists("nav/$link.php")){
   include("nav/$link.php");
}else{
   echo "<h3>Página não existe ou está em contrução </h3>";
}

 

Mesmo assim a url está assim:

http://localhost/IzabelleNossa/lojanossa/index.php?pg=vitrine&id=2

 

Gostaria que não aparecesse o .php no index e de preferencia não aparecesse o id.

Cara se quer que não pegue o .php se ja tento subitr isso pra net seu o localhost pk o meu site subiu e não aparece o .php so no localhost ele aparecia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wampserver é uma boa solução, usei bastante no inicio quando estava iniciando em programação, porém, pode haver conflitos com reescrita, descobri isso quando fui usar Codeigniter. Só pra constar. Quando puder tenta instalar tudo separadamente, só pra evitar problemas. Segue tutorial muito bom: Clique aqui

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.