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!


Muito FracoFracoRazoávelBomMuito Bom (2 votos, média: 4,50 num total de 5)
Loading ... Loading ...