English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá como enviar informações para o servidor usando os métodos HTTP GET e POST, bem como como recuperar informações usando PHP.
Os navegadores da web usam dois métodos HTTP (HyperText Transfer Protocol) - GET e POST - para se comunicar com o servidor. Ambos os métodos passam informações de maneiras diferentes e têm suas próprias vantagens e desvantagens, conforme descrito a seguir.
Os dados são enviados como parâmetros da URL no método GET, geralmente por meio de uma string de nome e valor separada pelo símbolo &. URLs com dados GET geralmente têm o seguinte formato:
http://www.example.com/action.php?name=john&age=24
A parte em negrito na URL é o parâmetro GET, enquanto a parte em itálico é o valor desses parâmetros. Parâmetros múltiplos podem ser inseridos na URL através da combinação de parâmetros=valor com o símbolo de &. Apenas dados de texto simples podem ser enviados através do método GET.
Como os dados enviados pelo método GET são exibidos na URL, é possível adicionar favoritos à página usando valores específicos de consulta de string.
O método GET não é adequado para transmitir informações sensíveis, como nome de usuário e senha, pois essas informações são completamente visíveis na string de consulta da URL e podem ser armazenadas na memória do navegador do cliente como parte do acesso à página.
Como o método GET atribui dados ao ambiente do servidor, o comprimento da URL é limitado. Portanto, há um limite no total de dados a serem enviados.
O PHP oferece a variável global super $_GET para acessar todas as informações enviadas através da URL ou submetidas através de formulários HTML com method="GET".
<!DOCTYPE html> <html> <head> <title>Online Example PHP GET Method</title> </head> <?php if(isset($_GET[\"name\"])){ echo \/p>"; } ?> <form method="get" action="<?php echo $_SERVER[\"PHP_SELF\"];?>"> <label for="inputName">Nome:</label> <input type="text" name="name" id="inputName"> <input type="submit" value="Enviar"> </form>
No método POST, os dados são enviados para o servidor em uma comunicação separada com o script de processamento. Os dados enviados pelo método POST não são visíveis na URL.
É mais seguro que GET, pois as informações de entrada do usuário nunca serão visíveis na string de consulta da URL ou nos logs do servidor.
Há maior restrição na quantidade de dados que podem ser transmitidos, e pode usar POST para enviar dados de texto e dados binários (envio de arquivos).
Como os dados enviados pelo método POST não são visíveis na URL, não é possível adicionar bookmarks para páginas com consultas específicas.
Como $_GET, o PHP oferece outra variável global superglobal $_POST para acessar todas as informações enviadas por método POST ou por HTML formulário com method="POST".
<!DOCTYPE html> <html> <head> <title>Exemplo Online PHP Método POST</title> </head> <?php if(isset($_POST["name"])){ echo "<p>Hi, " . $_POST["name"] . "</p>"; } ?> <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>"> <label for="inputName">Nome:</label> <input type="text" name="name" id="inputName"> <input type="submit" value="Enviar"> </form>
O PHP oferece outra variável global superglobal $_REQUEST, que contém os valores das variáveis $_GET e $_POST, além dos valores da variável global superglobal $_COOKIE.
<!DOCTYPE html> <html> <head> <title>Exemplo Online PHP Variável $_REQUEST</title> </head> <?php if(isset($_REQUEST["name"])){ echo "<p>Hi, " . $_REQUEST["name"] . "</p>"; } ?> <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>"> <label for="inputName">Nome:</label> <input type="text" name="name" id="inputName"> <input type="submit" value="Enviar"> </form>
Você aprenderá mais sobre PHP no capítulo avançado. cookieetratamento de formuláriosMais informações.
Atenção:Os variáveis globais superglobais $_GET, $_POST e $_REQUEST são integradas, sempre disponíveis em todos os escopos do script.