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 não url-coded por razões de segurança.
Se você deseja atribuir vários valores para uma única variável do cookie, você
pode fazer dele um array:
Isso irá criar dois cookies separados enquanto que MyCookie será
um único array em seu script. Se quiser definir apenas um cookie com
vários valores, considere utilizar serialize() ou
explode() nos valores primeiro.
Note que um cookie substituiu um anterior com o mesmo
nome em seu navegador, a menos que o nome ou o caminho seja diferente. Então,
para uma aplicação de carrinho de compras em que se quer ter um contador
e repassá-lo:
Exemplo #4 Exemplo 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 postadas
Normalmente o PHP não altera o nome de variáveis quando elas
são passadas para o script. Entretanto, é necessário notar que o
ponto (ponto final) não é um caractere válido no nomes de
variáveis do PHP. Para ilustrar, veja o seguinte exemplo:
<?php
$varname.ext; /* nome de variável inválido */
?>
Dessa forma, o interpretador entende isso como uma variável nomeada
$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árias, nem sempre é óbvio o tipo de uma variável
em todos os momentos. O PHP incluí 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
Tipos.
Por o HTTP ser um protocolo 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"] irá conter a
string "null" e $_GET["var2"] conterá a string "123".
/index.php?var1=null&var2=123