Como definir e recuperar cookies?

12

Depois de vários dias e mais horas, encontrei apenas problemas e correções sobre o que fazer depois que um cookie é definido, mas nenhum menciona como você define um conjunto de cookies em primeiro lugar.

Nossa intenção seria definir um cookie (sessão) da página de destino (para TODAS as funções de usuário) e recuperar esse cookie em determinadas páginas, através de visualizações, para usar no URL de um link de saída. Isso seria muito simples na programação padrão (até eu entendo), mas estou começando a ter uma dúvida considerável se isso é realmente possível no Drupal.

Riccardorb
fonte

Respostas:

4

O Drupal já define um cookie de sessão quando um usuário efetua login: consulte a função drupal_session_regenerate () .

Você pode usar esse ID de sessão para seus propósitos? Caso contrário, você só precisará criar um novo valor no cookie da mesma maneira que fará no PHP $_COOKIE['my_value'];,. Coloque esse código no hook_init()módulo personalizado, adicionando a if()para filtrar a página de destino.

Mais tarde, você o recupera e o usa em sua exibição; você pode usar alguns dos ganchos do Views, dependendo de suas necessidades. Você também pode usar o campo personalizado Views do módulo e incorporar seu código PHP lá.

corbacho
fonte
1
Se tudo o que ele precisa é de um valor da sessão, ele também pode usar $_SESSION[], pois a sessão é sempre inicializada no Drupal.
kiamlaluno
2

Você pode definir um cookie com: setcookie('cookiename',$valueOfCookie);

Você pode recuperar o valor do cookie com: $_COOKIE['cookiename']

Ibrahim
fonte