Tal qual como foi falei aqui em Dicas para melhorar os URLs das Páginas, os URL’s das páginas têm bem mais importância, do que a maioria das pessoas pensam. Ninguém quer “enfrentar maratonas” de URLs e muito menos com QueryStrings. Mas se calhar algumas pessoas não sabem o que são QueryStrings ou como fazê-las.
Uma QueryString, num modo bem simples de entender, é toda a informação passada pela URL pelo método GET, ou seja, tudo o que vem depois do “?” na URL.
Vamos tomar o exemplo, em que o nosso link é www.meusite.pt/?pag=teste.
Iríamos obter a informação passada assim.
< ?PHP $pag = $_REQUEST['pag']; // A variável $pag será uma string com o conteúdo a testar ?>
Também podemos obter a informação por $_GET.
Exemplo:
< ?PHP $pag = $_GET['pag']; //A variável $pag será uma string com o conteúdo a testar // teste. ?>
Até aqui tudo muito simples.
Agora, como podemos tratar das URL’s ?
É simples, e existem vários métodos.
Por if(o mais simples), por switch(mediano) e por arrays (o que eu prefiro).
Vamos começar pelo if.
Query String com IF, e ELSEIF:
< ?PHP
$seccao = $_REQUEST['seccao'];
if($link == "php")
{
$pagina = "php.php";
}
elseif($seccao == "asp")
{
$pagina = "asp.php";
}
if( (isset($pagina)) and (file_exists($pagina)) )
{
echo '';
include($pagina);
}
else
{
echo "Página não encontrada, insere o link correcto.";
}
?>
Este é o método mais simples, e fácil para quem está a iniciar.
Agora, digamos que queres ter mais do que uma querystring.
Por exemplo com o link: pagina.php?seccao=php&categoria=scripts.
Iríamos obter as variáveis da mesma forma que o exemplo acima, onde o & serve para adicionar mais um campo.
Por exemplo, se tivermos a seguinte querystring: pagina.php?seccao=php&categoria=scripts&subcategoria=chats&id=11102
Para obtermos dados múltiplos no if, basta fazermos múltiplas verificações.
Continuando o exemplo acima:
< ?PHP
$seccao = $_REQUEST['seccao'];
$categoria = $_REQUEST['categoria'];
if($seccao == "php")
{
$pagina = "php.php";
}
elseif($seccao == "asp")
{
$pagina = "asp.php";
}
elseif($seccao == "php" AND $categoria == "scripts")
{
$pagina = "php/scripts.php";
}
if( (isset($pagina)) and (file_exists($pagina)) )
{
echo '';
include($pagina);
}
else
{
echo "Página não encontrada, insere o link correcto.";
}
?>
Agora com o switch.
< ?php
$sessao = $_GET["sessao"];
switch($sessao)
{
case "html":
include("html.php");
break;
case "php":
include("php.php");
break;
default:
echo "Não encontrada.";
break;
}
?>
Com Arrays
< ?PHP
$seccao = $_REQUEST['link'];
// Atenção na ,(virgula) que separa os arrays. Quando terminar-mos não vamos utilizar mais a virgula só iremos colocar o );
$seccao = array('php' => array('php.php'), 'asp' => array('asp.php'), 'js' => array('js.php'));
if(isset($link) AND file_exists($seccao[$seccao][0]))
{
include ($seccao[$seccao][0]);
}
else
{
echo "Página não encontrada, por favor insira o link correto.";
}
?>
Se tiverem dúvidas é só comentarem!

(2 votos, média: 4,50 num total de 5)
(1 votos, média: 4,00 num total de 5)



