Função PHP setrawcookie()
Exemplo
O exemplo a seguir cria um cookie com PHP. O cookie chama-se "user" e o valor será "John Doe". O valor do cookie não será codificado por URL. O cookie expirará após 30 dias (86400 * 30). Usar "/", significa que o cookie está disponível em todo o site (caso contrário, selecione o diretório de sua preferência):
<?php
$cookie_name = "user";
$cookie_value = "John";
setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
// 86400 = 1 day
?>
<html>
<body>
<?php
echo "Cookie is set.";
?>
</body>
</html>
?>
Definição e uso
A função setrawcookie() define um cookie (sem codificação de URL) a ser enviado junto com o restante dos cabeçalhos HTTP.
Um cookie é frequentemente usado para identificar um usuário. Um cookie é um pequeno arquivo que o servidor incorpora no computador do usuário. Cada vez que o mesmo computador solicita uma página com um navegador, ele também enviará o cookie. Com o PHP, você pode criar e recuperar valores de cookies.
O nome do cookie é atribuído automaticamente a uma variável com o mesmo nome. Por exemplo, se um cookie foi enviado com o nome "user", é criada automaticamente uma variável chamada $user, contendo o valor do cookie.
Nota: A função setrawcookie() deve aparecer ANTES da tag <html>.
Nota: Para codificar automaticamente por URL o valor do cookie ao enviar e decodificar automaticamente ao receber, use a função setcookie() .
Sintaxe
setrawcookie(name, value, expire, path, domain, secure);
Valores de parâmetro
Parameter | Description |
---|---|
name | Required. Specifies the name of the cookie |
value | Optional. Specifies the value of the cookie |
expire | Optional. Specifies when the cookie expires. The value: time()+86400*30, will set the cookie to expire in 30 days. If this parameter is not set, the cookie will expire at the end of the session (when the browser closes) |
path | Optional. Specifies the server path of the cookie. If set to "/", the cookie will be available within the entire domain. If set to "/php/", the cookie will only be available within the php directory and all sub-directories of php. The default value is the current directory that the cookie is being set in |
domain | Optional. Specifies the domain name of the cookie. To make the cookie available on all subdomains of example.com, set domain to ".example.com". Setting it to www.example.com will make the cookie only available in the www subdomain |
secure | Optional. Specifies whether or not the cookie should only be transmitted over a secure HTTPS connection. TRUE indicates that the cookie will only be set if a secure connection exists. Default is FALSE. |
Detalhes técnicos
Valor de retorno: | VERDADEIRO no sucesso. FALSO em caso de falha |
---|---|
Versão do PHP: | 5+ |
Mais exemplos
Exemplo
Recupere o valor do cookie chamado "user" (usando a variável global $_COOKIE). Use também a função isset() para descobrir se o cookie existe:
<html>
<body>
<?php
$cookie_name = "user";
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' does not exist!";
} else {
echo "Cookie is named: " . $cookie_name . "<br>Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Exemplo
Para modificar um cookie, basta definir (novamente) o cookie usando a função setrawcookie():
<?php
$cookie_name = "user";
$cookie_value = "Alex";
setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
$cookie_name = "user";
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' does not exist!";
} else {
echo "Cookie is named: " . $cookie_name . "<br>Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Exemplo
Para excluir um cookie, use a função setrawcookie() com uma data de expiração no passado:
<?php
$cookie_name = "user";
unset($_COOKIE[$cookie_name]);
// empty value and expiration one hour before
$res = setrawcookie($cookie_name, '', time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>
Exemplo
Crie um pequeno script que verifique se os cookies estão ativados. Primeiro, tente criar um cookie de teste com a função setrawcookie(), então conte a variável de array $_COOKIE:
<?php
setrawcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled";
} else {
echo "Cookies are disabled";
}
?>
</body>
</html>
❮ Referência de Rede PHP