O PHP suporta cookies HTTP como um mecanismo para identifica...

Próximas questões
Com base no mesmo assunto
Q869164 Programação
O PHP suporta cookies HTTP como um mecanismo para identificar um usuário. Para criar um cookie podem ser usadas as funções
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Resposta Correta: E - setcookie() ou setrawcookie().

No contexto de programação para web com PHP, cookies são pequenos arquivos de texto que são armazenados no navegador do usuário. Eles são utilizados para lembrar informações entre as visitas a um site, como preferências de usuário ou dados de login, por exemplo.

O PHP oferece funções para manipular cookies, e a questão aborda especificamente o processo de criar um cookie. Para isso, o PHP disponibiliza duas funções principais:

  • setcookie(): Esta função é a mais comum para criar um cookie. Ela envia um cabeçalho HTTP junto com o resto da resposta do servidor para o navegador do usuário, instruindo-o a armazenar o valor do cookie.
  • setrawcookie(): Funciona de maneira similar à função setcookie(), mas a diferença está no tratamento do valor do cookie. Enquanto setcookie() automaticamente codifica o valor do cookie, caso isso seja necessário, setrawcookie() envia o valor exatamente como fornecido, sem codificação.

A alternativa correta é a letra E, pois as duas funções mencionadas são as únicas fornecidas pelo PHP para a criação de cookies. As outras alternativas listam funções que não existem no PHP ou não são relacionadas à criação de cookies.

É importante lembrar que ao usar cookies, deve-se sempre considerar questões de privacidade e segurança, já que os dados armazenados em cookies podem ser acessíveis a outras pessoas com acesso ao mesmo navegador, e em alguns casos, podem estar sujeitos a riscos como ataques de Cross-Site Scripting (XSS).

Lembre-se: Sempre verifique a documentação oficial do PHP para confirmar o funcionamento e a sintaxe correta das funções que você pretende usar, e esteja ciente das melhores práticas de segurança ao trabalhar com cookies e outras tecnologias web.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

O PHP possui suporte para “Cookies”, que são pequenos arquivos enviados pelo servidor web para a máquina local do usuário.

Para criar um cookie, usamos a função:
setcookie(nome, valor, expiração, caminho, dominio);

setrawcookie(nome, valor, expiração, caminho, dominio);

A diferença do setcookie para o setrawcookie é que o setrawcookie não aplica a função urlencode no valor do cookie setado.

Por exemplo, o comando setcookie("status", "<b>aprovado</b>") criará o seguinte cookie:

status=<b>aprovado</b>

Já o comando setcookie("status", "<b>aprovado</b>") criará o cookie abaixo, com os sinas de "<", "/" e ">" codificados.

status=%3Cb%3Eaprovado%3C%2Fb%3E

Excelente comentário do @Alexandre. Somente complementando a diferença setcookie() e o setrawcookie() é: o setrawcookie cria um cookie sem nenhuma codificação codificação de URL.

  • Obs.: Ele escreveu os dois exemplos como setcookie, mas tente entender que o primeiro é o setrawcookie e o segundo o setcookie.

e-

 setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace.

Once the cookies have been set, they can be accessed on the next page load with the $_COOKIE array. Cookie values may also exist in $_REQUEST.

Note that the value portion of the cookie will automatically be urlencoded when you send the cookie, and when it is received, it is automatically decoded and assigned to a variable by the same name as the cookie name. If you don't want this, you can use setrawcookie() instead.

https://www.php.net/manual/en/function.setcookie.php

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo