E ai pessoal, como estão. Aqui estamos para mais uma Tips e esta é a parte 4 de uma série onde estamos falando sobre variáveis no PHP. Nas últimas tips temos falado das variáveis SUPERGLOBAIS, então para não fugir a regra vamos seguir esta linha falando hoje sobre a SUPERGLOBAL $_GET.


     Antes de falarmos sobre a SUPERGLOBAL em si vamos primeiro entender o que é método GET. Observe as URL abaixo:


//www.devmedia.com.br/cursos/default.asp?tema=62

//www.devmedia.com.br/assgold/listmag.asp?site=3

//www.devmedia.com.br/articles/viewcomp.asp?comp=13995

//www.devmedia.com.br/canais/default.asp?site=39


     O que essas URL acima têm em comum? Claro, todas são do site da DevMedia claro, mas não é isso ainda. Repare que em todas elas temos a presença de uma interrogação. Você saberia dizer o que isto significa? Na verdade isto significa que na URL estão sendo passados parâmetros, isso é a famosa passagem de parâmetro por URL ou passagem de parâmetro via método GET. Para isso ficar mais claro é preciso ter uma idéia de como funciona o protocolo HTTP e como funciona a comunicação entro o cliente (Browser) e o servidor (Servidor Web).


     O Hypertext Transfer Protocol (Protocolo de Transferência de Hipertexto - HTTP) é o protocolo de comunicação utilizado para a troca de dados entre um navegador e um servidor web. Para que o protocolo HTTP consiga transferir seus dados pela Web, é necessário que os protocolos TCP/IP  tornem possível a conexão entre clientes e servidores através de sockets TCP/IP. O protocolo HTTP define oito métodos que indicam a ação a ser realizada no servidor quando é feita uma requisição, ou seja, quando você digite um www.qualquercoisa.com.br você está na verdade fazendo uma requisição ao servidor web que deverá responder "A altura".


      Nesta requisição, por exemplo, além do endereço que estou invocando posso passar ao servidor mais algumas informações, mais alguns parâmetros para que ele possa me responder de forma diferente.


     Observe esta URL //www.devmedia.com.br/cursos/default.asp?tema=62. Ao digitar isso no Browser eu estou solicitando ao servidor que me devolva a pagina de cursos, porém, além disso, eu passo a ele também o código do temo ao qual que quero exibir.


     Quando esta requisição chega ao servidor junto chega também o código do tema. Com isso eu posso fazer um select na base de dados e recuperar as informações deste tema, montar a minha pagina e devolver para o cliente. O resultado e o site da imagem abaixo:







     É claro que no servidor da DevMedia não tem uma página para cada curso, elas são montadas de acordo com a requisição e isto nós chamamos de paginas dinâmicas. Se você começar a reparar a partir de agora verá que está técnica e largamente utilizada em aplicações Web.

     Tudo muito lindo, tudo muito bom, mas até agora nada de PHP, Delphi for PHP ou SUPERGLOBAL. Onde isso se encaixa neste contexto?

$_GET - HTTP GET variáveis

   Um array associativo de variáveis passadas para o script atual via o método HTTP GET. (Manual PHP)

     Como sempre mais uma SUPERGLOBAL representada por um array associativo. Como vimos acima o parametro e enviado para o servidor atraves do metodo GET e o PHP roda no servidor. Então chegamos a conclusão que para pegar o valor passado para o Servidor basta usar a SUPERGLOBAL $_GET e como ele é um array passamos como chave o nome do parametro passado. "Tá bom" eu sei não entendeu nada. Então observe o seguinte código:

<?php
  echo 'Valor passado pela URL '.($_GET["codigo"]).' !';
?>

     Claro que se você rodar o script assim pura e simplesmente nada será exibido. Agora suponha que seu script chama-se index.php. Experimente chamá-lo no Browser assim: index.php?codigo=1000.

      Isso fará com que seja exibida na tela do browser a seguinte mensagem: 

    Valor passado pela URL 1000!

      Bem pessoal, com isso fica simples saber como é que funciona e para que serve a variável $_GET. Espero que tenham gostado e até a próxima TIP.