lar - Para iniciantes
Métodos de transferência de dados PHP e GET e POST. POST, GET: como as solicitações diferem umas das outras O que é transferência de dados usando o método get

Descrição

O atributo method informa ao servidor sobre o método de solicitação.

Sintaxe

...

Valores

O valor do atributo method não diferencia maiúsculas de minúsculas. Existem dois métodos - obter e postar.

Obter Este método é um dos mais comuns e foi projetado para obter as informações necessárias e transferir dados para Barra de endereço. Nesse caso, os pares nome=valor são anexados ao endereço após o ponto de interrogação e separados por um e comercial (símbolo &). A comodidade de utilizar o método get é que o endereço com todos os parâmetros pode ser utilizado repetidamente, salvando-o, por exemplo, nos favoritos do seu navegador, e você também pode alterar os valores dos parâmetros diretamente na barra de endereço. post O método post envia dados ao servidor em uma solicitação do navegador. Isso permite enviar mais dados do que os disponíveis para o método get, pois ele tem um limite de 4 KB. Grandes quantidades de dados são utilizadas em fóruns, serviços de e-mail, preenchimento de bancos de dados, envio de arquivos, etc.

Atributo obrigatório

Valor padrão

HTML5 IE Cr Op Sa Fx

Tag FORM, atributo de método



Ao desenvolver qualquer projeto, uma das coisas mais básicas é a comunicação com o usuário. Podemos perguntar-lhe algo e dar-lhe o direito de resposta (pesquisa), podemos dar-lhe o direito de escrever a sua opinião sobre um produto ou serviço, podemos ajudá-lo a calcular o custo dos nossos serviços se for necessário criar um online loja, etc.

Em todos os casos, o usuário deve ter o direito de escrever algo e clicar em algo. É para isso que servem os formulários.

Trabalhando com formulários em PHP e HTML

Os formulários são identificados pela tag form:

atributo de método indica qual método será usado para enviar o formulário. Existem 2 métodos - GET e POST. Leia mais sobre isso abaixo, enquanto falaremos brevemente sobre os principais elementos do formulário:

Campo de texto - Texto de entrada

Um campo de texto no qual você pode inserir informações. atributo de nome- Nome campo de texto, valor- significado. Eles se parecem com isto:

Botão - Enviar entrada

Botão usado para enviar formulários. Se parece com isso:

Bloco de texto - Textarea

Bloco de texto, geralmente usado para escrever mensagens grandes. Atribuir linhas, colunas - comprimento e largura.

Aparência:

Leia mais sobre formulários em nosso site ou em outras fontes. O objetivo desta lição é mostrar como processar formulários usando PHP.

Método GET e POST ao enviar formulários

Métodos GET e POST são especificados no atributo method do formulário quando ele é inicializado:

Método GET transmite informações no endereço da página, Método POST- nas manchetes. Para entender melhor o que é Método GET e POST Vamos escrever um script que enviará nosso nome e mensagem ao servidor, e o servidor exibirá a mensagem na tela.

Em dados PHP recebido usando o método GET armazenado em uma variável $_GET. Dados transmitido usando o método POST armazenado em uma variável $_POST.

Vamos primeiro escrever o código para funcionar com o método GET e depois com o método POST.

Formulários - Estúdio de design OX2.ru

 

imprimir_r($_GET); //Sai do array usando print_r
?>

Seu nome:
Mensagem:



Agora vamos retrabalhar o script para enviar dados usando o método POST.

Formulários - Estúdio de design OX2.ru

 

imprimir_r($_POST); //Sai do array usando print_r
?>

Seu nome:
Mensagem:



Para entender melhor o trabalho com formulários em PHP, enviando e recebendo dados Métodos POST e GET, na próxima lição faremos um jogo de lógica simples.

Ao desenvolver qualquer projeto, uma das coisas mais básicas é a comunicação com o usuário. Podemos perguntar-lhe algo e dar-lhe o direito de resposta (pesquisa), podemos dar-lhe o direito de escrever a sua opinião sobre um produto ou serviço, podemos ajudá-lo a calcular o custo dos nossos serviços se for necessário criar um online loja, etc.

OX2 05/10/2014 05/10/2014

Os clientes do navegador podem enviar informações ao servidor web.

Antes de o navegador enviar informações, ele as codifica usando um esquema chamado codificação de URL. Neste esquema, os pares nome/valor são concatenados com sinais de igual e pares diferentes são separados por um e comercial.

Nome1=valor1&nome2=valor2&nome3=valor3

Os espaços são removidos e substituídos por um caractere + e quaisquer outros caracteres não alfanuméricos são substituídos por valores hexadecimais. Depois que as informações são codificadas, elas são enviadas ao servidor.

Método GET

O método GET envia informações codificadas do usuário anexadas à solicitação da página. As páginas e as informações codificadas estão separadas umas das outras? ponto de interrogação.

http://www.test.com/index.htm?name1=value1&name2=value2

  • O método GET produz uma longa string que aparece nos logs do servidor no campo “Localização” do navegador.
  • O método GET está limitado ao envio de apenas 1.024 caracteres.
  • Nunca use o método GET se você tiver uma senha ou outro informação confidencial para enviar ao servidor.
  • GET não pode ser usado para transferir dados binários, como uma imagem ou documentos de texto, para o servidor.
  • Os dados enviados usando o método GET podem ser acessados ​​usando variável de ambiente QUERY_STRING.
  • PHP fornece o array associativo $_GET para acessar todas as informações enviadas usando o método GET.

if($_GET["nome"] || $_GET["idade"]) ( echo "Bem-vindo ". $_GET["nome"]; echo "Você tem ". $_GET["idade"]. "anos "; saída(); )

Nome: Idade:

Método POST

Método PUBLICAR transmite informações por meio de cabeçalhos HTTP. A informação é codificada conforme descrito no caso do método PEGAR, e colocado no cabeçalho QUERY_STRING.

  • O método POST não tem limite no tamanho dos dados que precisam ser enviados.
  • O método POST pode ser usado para enviar dados ASCII e também binários.
  • Os dados enviados usando o método POST passam por um cabeçalho HTTP, portanto a segurança depende do protocolo HTTP. Ao usar HTTP seguro, você pode garantir que suas informações estejam protegidas.
  • O PHP fornece um array associativo $_POST para acessar todas as informações enviadas usando o método POST.

Experimente o exemplo a seguir colocando fonte no script test.php.

if($_POST["nome"] || $_POST["idade"]) ( if (preg_match("[^A-Za-z"-]",$_POST["nome"])) ( morrer (" nome inválido e nome deve ser alfa"); ) echo "Bem-vindo ". $_POST["nome"]; echo "Você tem ". $_POST["idade"]. "anos."; exit(); )

Nome: Idade:

Variável $_REQUEST

Variável PHP $_REQUEST contém conteúdos como $_GET, $_POST, então $_COOKIE. Discutiremos a variável $_COOKIE quando falamos de biscoitos.

A variável $_REQUEST do PHP pode ser usada para recuperar o resultado dos dados do formulário enviados usando os métodos GET e POST.

O que eles têm em comum é que funcionam da mesma maneira. Tecnicamente não há diferença entre eles. Mas existem diferenças ideológicas.

Falarei sobre eles no contexto do PHP. Observe que o protocolo HTTP está indiretamente relacionado ao PHP porque foi criado para a troca páginas HTML e o PHP simplesmente amplia as capacidades de ambos.

A solicitação GET é usada para receber dados e POST é usada para enviar. (Lembre-se que tecnicamente eles funcionam da mesma forma).

Portanto, no contexto do PHP, com base nesta ideologia, fizemos o seguinte:
1. Cada vez que você inicia o PHP, arrays superglobais ($_GET, $_POST) são criados por padrão.
2. Se houver um ponto de interrogação(?) na string de consulta. Tudo depois de considerado parâmetros GET, eles são apresentados no formato "key"="value" e o caractere "e" comercial (&) é usado como delimitador.
Exemplo:
GET /index.php?name=Andrey&surname=Galkin
Esta é uma string de consulta, existem 2 parâmetros. esses parâmetros irão para o array $_GET.
3. $_POST é preenchido de uma maneira diferente. o conteúdo desta matriz é preenchido a partir dos "cabeçalhos de solicitação". Isto é, de um lugar claramente escondido da vista. O navegador cuida de todas as tarefas de criação de tais cabeçalhos. Embora às vezes algo seja editado manualmente nos títulos.

Na maioria das vezes, uma solicitação de postagem é usada em formulários (para enviar dados).

Por exemplo, temos um formulário de login com 2 campos: login e senha.

Vamos imaginar que estamos usando o método GET. Então, ao enviar o formulário, iremos para o seguinte endereço /login.php?login=Andrey&password=123 Você concordará que transmitir tais informações desta forma não é nada seguro. Qualquer pessoa pode abrir seu navegador e, ao digitar o endereço do site, poderá ver suas senhas e logins do histórico.

Mas se especificássemos o método POST, receberíamos a seguinte solicitação:
POST /login.php (login=Andrey&password=123) o que está entre colchetes ficaria oculto e não seria salvo de forma alguma no navegador.

Resumindo:
GET é obter uma página específica uma certa forma(classificação, página atual do blog, barra de pesquisa, etc.).
POST - para envio de dados que não afetam a exibição da página, no sentido de que esses dados afetam apenas o resultado do script (logins, senhas, números de cartão de crédito, mensagens, etc.).

E outra boa notícia é que podem ser combinados, por exemplo
POST /index.php?page=login (login=Andrey&password=123) Acho que já expliquei o suficiente o que resultará disso e quais parâmetros irão para qual array.

O uso dos métodos GET e POST em PHP é difícil de superestimar, uma vez que esses métodos são encontrados em quase todos os sites. Antes de estudar o material descrito abaixo, aconselho você a se familiarizar com a tag html

. Vejamos cada um desses métodos em detalhes.

Método GET

O método GET usa uma string de URL para transferir dados. Você deve ter notado URLs longos e pouco claros. Por exemplo: function.php?login=Alex&email=dezyakin. Neste caso, os dados são processados ​​em function.php. Após o ponto de interrogação "?" há uma lista de parâmetros passados ​​(os parâmetros são separados por "&") com valores: ao parâmetro login é atribuído o valor Alex, e à variável email é atribuído o valor dezyakin. Os dados serão armazenados no array superglobal $_GET. Um exemplo de uso do método GET é apresentado abaixo:

Conecte-se: E-mail: Usando o array superglobal $_GET, exibimos os valores aceitos:*/ eco "
login = ". $_GET["login"] ; echo "
email = ". $_GET["email"] ; ?>

Observe como lemos os valores do array superglobal $_GET: $_GET["nome_variável"]. No nosso exemplo, os nomes das variáveis ​​foram declarados no formato (nome=login e nome=e-mail).

Conselho:
Antes de processar os valores recebidos, aconselho verificar a existência deles através de funções isset(nome_variável) ou vazio (nome_variável)- estas funções foram discutidas na lição anterior 2: variáveis ​​em PHP. Por exemplo:

verificando a existência usando isset: if isset ($_GET["login"] ) ( operadores para processamento de login ... } //ou verifique a existência usando vazio: se vazio ($_GET["email"] ) ( operadores para processamento de e-mail ... } ?>

No formulário você pode especificar o nome do arquivo que irá processar os valores transferidos. Isso é feito usando o atributo action do formulário, ao qual pode ser atribuído o endereço deste arquivo. Por padrão, este arquivo é atribuído arquivo atual(ou seja, processado no arquivo onde o formulário está localizado). Aqui está um exemplo em que os dados de um formulário são transferidos para o arquivo srcipt.php para processamento:

Conecte-se: E-mail:

O arquivo script.php deve conter algum tipo de manipulador de informações, caso contrário as informações serão passadas vazias.

O método GET tem muitas desvantagens:

  • O usuário vê os valores dos parâmetros passados;
  • O usuário pode facilmente falsificar parâmetros passados;
  • Transmissão inconveniente de informações binárias (você precisa codificá-las em formato de texto);
  • A quantidade de dados transferidos é limitada - 8 KB;

Devido às desvantagens acima, o método GET é utilizado apenas nos casos em que uma pequena quantidade de dados precisa ser transferida, e esses dados não são classificados de forma alguma.

Método POST

O método POST difere do GET porque os dados são transferidos de forma privada. Existe um array superglobal $_POST no qual os dados podem ser lidos assim: $_POST["nome_variável"]. Por exemplo:

Conecte-se: "> E-mail: ">
Usando o array superglobal $_POST, exibimos os valores aceitos:*/ eco "
login = ". $_POST["login"] ; echo "
email = ". $_POST["email"] ; ?>

O resultado da execução do código acima é mostrado na figura abaixo:

Como você pode ver, o URL não possui nenhum postscript, mas mesmo assim os dados foram recebidos e exibidos.

Observação:
1) O volume de valores transferidos pelo método POST é limitado por padrão e é igual a 8 MB. Para aumentar este valor você precisa alterar a diretiva post_max_size no php.ini.

2) Nas versões anteriores do PHP, em vez dos nomes curtos de array superglobal $_GET e $_POST, nomes mais longos eram usados: $HTTP_GET_VARS e $HTTP_POST_VARS . Por padrão eles estão desabilitados no PHP 5, mas você pode habilitá-los no arquivo de configuração php.ini usando o parâmetro register_long_arrays. Na versão php 6 esses nomes longos não estarão disponíveis.

3) Antes de processar variáveis ​​​​de $_POST, aconselho você a verificar a presença das variáveis, assim como foi feito com o método GET.



 


Ler:



Como reduzir o tamanho de um PDF, instruções detalhadas

Como reduzir o tamanho de um PDF, instruções detalhadas

Arquivos PDF com muitos elementos gráficos ficam bonitos, mas enviá-los por e-mail é uma chatice devido ao seu tamanho grande...

Os melhores programas para desfragmentar seu disco rígido no Windows

Os melhores programas para desfragmentar seu disco rígido no Windows

E este artigo discutirá os melhores programas para desfragmentar seu disco rígido. Todos eles são gratuitos e você pode encontrá-los facilmente no...

Selecionando um receptor e acústica (hi-fi econômico) De chão e estante

Selecionando um receptor e acústica (hi-fi econômico) De chão e estante

A maioria dos usuários de áudio doméstico não sente nenhum inconveniente especial ao ouvir música no formato MP3 e até mesmo ao assistir filmes com...

Cooler não funciona no notebook

Cooler não funciona no notebook

Hoje, a maioria dos laptops está equipada com hardware poderoso que lhes permite executar aplicativos sérios, bem como jogos exigentes....

imagem de feed RSS