Muitas vezes torna-se necessário transferir dados de um navegador do cliente para um arquivo do servidor com um script para processar esses dados. Vamos ver exatamente como organizar a transferência de parâmetros php para o script.
É necessário
Conhecimento básico de linguagens PHP e HTML
Instruções
Passo 1
Para transportar dados de formulários da web no HTTP (HyperText Transfer Protocol), dois métodos são fornecidos - GET e POST. Eles diferem na forma como são transmitidos do aplicativo cliente (navegador) para o aplicativo servidor (script php executável). O método GET usa a barra de endereço para isso. Ou seja, os nomes e valores das variáveis passadas a ele são anexados diretamente ao endereço do script (ou URL - Uniform Resource Locator) por meio de um ponto de interrogação (?). Por exemplo, o URL pode ser assim:
Aqui, o script search.php recebe uma variável chamada num com valor 30, uma variável newwindow com valor 1 e uma variável safe com valor off. O servidor, tendo recebido tal pedido, pelo "?" separa o endereço do arquivo e divide todo o resto em pares de nomes e valores de variáveis. Os pares resultantes são preenchidos no array $ _GET, a partir do qual o script php especificado no endereço será capaz de extraí-los. Em sua forma mais simples, o código html do formulário para enviar esses dados do navegador para o servidor usando o método GET pode ter a seguinte aparência:
E o script php mais simples para receber esses dados é assim:
<? php
$ num = $ _GET ['num'];
$ newwindow = $ _GET ['newwindow'];
$ safe = $ _GET ['seguro'];
?>
As desvantagens mais significativas de passar variáveis usando o método GET:
- quantidade limitada de dados, já que o comprimento da URL não pode exceder 255 caracteres;
- nem todos os caracteres do código html podem ser transferidos por este método;
- os dados transmitidos são visíveis para o usuário, o que nem sempre é aceitável do ponto de vista da segurança;
Passo 2
Esses inconvenientes e limitações podem ser evitados usando outro método - POST. Ele usa áreas especiais de pacotes de rede para transferir cabeçalhos de dados. Em todos os outros aspectos, as diferenças entre esses métodos são mínimas - na forma de envio de dados acima, apenas o nome do método será alterado:
E no script php, apenas o nome da matriz de dados:
<? php
$ num = $ _POST ['num'];
$ newwindow = $ _POST ['newwindow'];
$ safe = $ _POST ['seguro'];
?>