Variáveis de fontes externas
Cookies HTTP
O PHP suporta transparentemente cookies HTTP como os definidos pela » RFC 6265. Cookies são um
mecanismo o armazenamento de dados no navegador,
rastreando e identificando o retorno de usuários. Você pode definir cookies com
a função setcookie(). Cookies são parte do
cabeçalho HTTP, então a função SetCookie precisa ser chamada antes
de qualquer saída ser enviada ao navegador. Esta é a mesma restrição
da função header(). Dados de cookies
estão disponíveis nos arrays de dados de cookies apropriados,
como $_COOKIE e também em $_REQUEST.
Veja o manual de setcookie() para mais detalhes e
exemplos.
Nota:
A partir dos PHP 7.2.34, 7.3.23 e 7.4.11, respectivamente, os nomes
dos cookies recebidos não são decodificados (a partir do formato URL) por razões de segurança.
Se a intenção for atribuir vários valores a uma única variável do cookie, deve-se
atribuí-la como um array:
Isso criará dois cookies separados embora MyCookie será
agora um único array no script. Se a intenção for definir apenas um cookie
com vários valores, pode-se utilizar serialize() ou
explode() nos valores primeiro.
Note que um cookie substituirá um anterior com o mesmo
nome no navegador, a menos que o caminho ou o domínio seja diferente. Portanto,
para uma aplicação de carrinho de compras, pode-se manter um contador
e repassá-lo:
Exemplo #4 Um exemplo de setcookie()
<?php
if (isset($_COOKIE['count'])) {
$count = $_COOKIE['count'] + 1;
} else {
$count = 1;
}
setcookie('count', $count, time()+3600);
setcookie("Cart[$count]", $item, time()+3600);
?>
Pontos em nomes de variáveis recebidas
Normalmente o PHP não altera o nome de variáveis quando elas
são passadas para um script. Entretanto, deve ser notado que o
ponto (ponto final) não é um caractere válido em nome de
variável do PHP. Para ilustrar o motivo, veja o seguinte exemplo:
<?php
$varname.ext; /* nome de variável inválido */
?>
Dessa forma, o interpretador entende isso como uma variável com nome de
$varname, seguida do operador de concatenação
de strings, seguida de uma string crua (uma string não delimitada que
não bate com nenhuma palavra-chave ou reservada) 'ext'. Obviamente,
isso não tem os resultados pretendidos.
Nessa situação, é importante notar que o PHP
substituirá automaticamente qualquer ponto nos nomes de variáveis recebidas por
sublinhados.
Determinando o tipo das variáveis
Como o PHP determina os tipos de variáveis e faz conversões
(geralmente) quando necessário, nem sempre é óbvio o tipo de uma variável
em cada momento. O PHP inclui várias funções
que permitem determinar qual o tipo de uma variável, por exemplo:
gettype(), is_array(),
is_float(), is_int(),
is_object(),e
is_string(). Veja também o capítulo sobre
Tipos.
Pelo fato do HTTP ser um protocolo de texto, a maioria, se não todo o conteúdo presente nos
arrays superglobais
como $_POST e $_GET permanecerão
como strings. O PHP não tentará converter valores para um tipo específico.
No exemplo abaixo, $_GET["var1"] conterá a
string "null" e $_GET["var2"] conterá a string "123".
/index.php?var1=null&var2=123