Ir para conteúdo

POWERED BY:

Arquivado

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

EXTREMOSOM

Passagem de informações através através URL

Recommended Posts

Sei que é possível a passagem de informações através da url por $_GET, como o exemplo abaixo:

 

http://meusite.com.br/index.php?id=usuario

 

Porém gostaria de saber como é realizado naqueles site que colocam a informação como diretório e recupera o mesmo, como exemplo.

 

http://meusite.com.br/"informação"

 

porem não são paginas, pois qualquer valor colocado em informações da uma pagina diferente com os valores correspondentes aos digitados.

 

Alguém sabe como fazer isso? ou como se chama essa passagem de informações para mim poder fazer um estudo sobre os mesmos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é exatamente diretório, isso se chama roteamento.

 

Existem ferramentas prontas para isso:

 

https://github.com/Respect/Rest

https://github.com/auraphp/Aura.Router

https://github.com/symfony/Routing

 

Você também pode analizar manualmente com $_SERVER['REQUEST_URI'] ou criar sua própria ferramenta para isso.

 

Também é possível fazer através do Apache (eu não acho que seja uma boa ideia..).

 

Diretórios = gambiarra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A insegurança da aplicação, depende do modo em que você a desenvolve.

 

Claro, Erico. Apenas dei a opção do mod rewrite para a opção que eu passei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu digitar no navegador:

 

www.meudominio.com.br/qualquer_coisa

 

como transformo "qualquer_coisa" em parâmetro?

 

para mim utilizar as variáveis globais a pagina "qualquer_coisa" deveria existir?

 

<?php

$script      = $_SERVER['REQUEST_URI'];

echo $script;
?>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou você usa mod_rewrite ou roteamento.

 

Para usar apenas com PHP use um roteador de URLs, eu lhe mostrei três deles no post #2, basta escolher um, baixar e colocar no projeto (todos podem ser instalados via composer).

 

Mas se desejar que o /index.php/ suma da URL vai precisar de modo de reescrita, mas não use esse modo para fazer a URL como um todo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui utilizando as variáveis amigáveis, ou seja criei o arquivo .htaccess e um index com as seguintes atribuições:

 

.htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1

 

 

index.php

<?
echo $_GET['url'];
?>

 

Ambos os arquivos dentro do diretório "exemplo", ficando deste modo.

 

http://www.meusite.com.br/exemplo/qualquercoisa

 

Assim tudo que eu digitar em "qualquercoisa" ele me retorna o que foi digitado.

 

Vlw pessoal, me ajudaram muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há problemas sim:

 

- se quiser não usar Apache, vai precisar reescrever para o outro servidor.

- problemas vão ocorrer na manutenção

- excesso expressões regulares

- é apenas uma reescrita, a URL não-amigável continua sendo acessível

 

O melhor é usar um roteador de URLs escrito em PHP, nesse caso os parâmetros não serão em $_GET, não vai haver acoplamento ao Apache, etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tambem não vejo problemas em usar desse jeito....

 

Ou você usa mod_rewrite ou roteamento.

todo roteamento vai usar sob os panos, seja mod_rewrite, ou URL Rewrite Module, não tem como sair disso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem sim cara, usando um router em PHP, você só precisa do server para tirar o nome do arquivo.. tem como sair disso.

 

Um sistema grande usando .htaccess para URLs é um inferno para manter.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está sendo "radical" Enrico. Os possíveis problemas apresentados por você, não é motivo para deixar de utilizar o modo de reescrita pelo htaccess e apache, visando que a maioria dos servidores web utilizam o apache. Excesso de expressão regular depende muito do caso, cada caso é um caso.

 

Você alega que se o cara não quiser utilizar servidor apache terá problemas. Utilizando routing em PHP, já pensou se o cara não quiser utilizar PHP ? da no mesmo...

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.