Ir ao conteúdo

Posts recomendados

Postado

Tá tudo funcionando, só gostaria de saber se fiz da melhor forma a parte do PHP

<?php if(!isset($_COOKIE['acceptCookie'])) { 

Segue todo meu esqueleto e projeto html.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <script src="https://code.jquery.com/jquery-3.5.1.js"></script>

    <title>Cookie Consentimento</title>
</head>


<body>
<!-- Estilização da página de teste -->    
<style type="text/css">
body{
    background: #ddd;
}    
#cookieConsent {
    color: #000;
    background-color: #f9f9f9;
    padding: 40px;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    display: none;
    z-index: 9999;
}
</style>
<!-- Fimm da Estilização da página de teste -->    

<!-- Script da Mensagem de consentimento de cookie --> 
<script type="text/javascript">
$(document).ready(function(){
//Faz aparecer o alerta de cookie
setTimeout(function () {$("#cookieConsent").fadeIn(200);}, 4000);
//Se aceitou o cookie, cria um cookie com valor true
$(document).on('click','.ciente', function(){
var aceito = true;
$.post("cookies.php", {okCookie: aceito}, function(retorno){
//alert(retorno);
});
//Fecha o alerta de cookie
$("#cookieConsent").fadeOut(200);
});
});//$(document).ready(function(){
</script>
<!-- Fim do Script da Mensagem de consentimento de cookie --> 

<!-- Msg de consentimento na tela --> 
<?php if(!isset($_COOKIE['acceptCookie'])) { //verifica se já foi aceito/ciente ?>
<div id="cookieConsent">
Usamos cookies blablablabla....&nbsp;&nbsp;
<button class="ciente">Estou ciente</button>
</div>
<?php } ?>
<!-- Fim da Msg de consentimento na tela --> 
</body>
</html>

Segue como crio o meu cookie em cookies.php:

<?php
if( $_SERVER['REQUEST_METHOD'] == 'POST') {
// Cria o novo cookie para durar seis horas
setcookie('acceptCookie', $_POST["okCookie"], (time() + (6 * 3600)));
//echo $_COOKIE['acceptCookie']; //Exibe no alert
}


 

adicionado 2 minutos depois

Gostaria de saber sobre a parte do Msg de <!-- Msg de consentimento na tela -->, tipo eu faço o fade in, mesmo tendo o cookie e somente lá na <!-- Msg de consentimento na tela -->, que verifico se já foi aceito. Alguma sugestão ou posso deixar assim?

Postado

Olá @assinante,

 

Depende, para um cookie de consentimento e permissão sim, não tem problema o mesmo ser público, mas deve ter cuidado com os próximos cookies, principalmente os de tokens e sessões, pois não adianta nada avisar sobre a privacidade e não fazer a proteção! Mas tirando isso, esse set não vejo problemas!

 

Grande abraço!

  • Amei 1
Postado

Olá @assinante,

 

para a segurança dos cookies privados, utilize sempre o setcookie, tenha certeza de utilizar aos atributos HTTPOnly, SameSite, URL definida para acesso somente do seu site, utilize também os atributos Secure e Strict!

 

Caso precise de ajuda não hesite em perguntar!

 

Grande abraço!

  • Obrigado 1
Postado
9 minutos atrás, assinante disse:

Obrigado! Nesse projeto acima já uso setcookie, logo acho que é um bom caminho! Mas como usar HTTPOnly no php?

 

Olá @assinante,

 

Você deve alterar as propriedades no php.ini para poder usar as propriedades Secure e HTTPOnly.

 

Após ativar no php.ini basta setar como true no setcookie.

 

php.ini:

session.cookie_httponly = true;

session.cookie_secure = true;

session.use_only_cookies = true;

 

Grande abraço!

  • Curtir 1
Postado

@ArThDsL  Prometo, último dúvida kkkk

 

Quando eu mundo essa região em negrito e em azul: $.post("cookies.php", {okCookie: aceito}, function(retorno){ para $.post("system/cookies.php", {okCookie: aceito}, function(retorno){

 

O cookie deixa de existir na minha index, quando o arquivo cookies.php está na mesma pasta da index funciona.

adicionado 0 minutos depois

Agradeço pela suporte :)

adicionado 0 minutos depois

o que pode ser?

 

Postado

Olá @assinante,

 

você setou as propriedades para true que falei nesse post:

38 minutos atrás, ArThDsL disse:

Olá @assinante,

 

para a segurança dos cookies privados, utilize sempre o setcookie, tenha certeza de utilizar aos atributos HTTPOnly, SameSite, URL definida para acesso somente do seu site, utilize também os atributos Secure e Strict!

 

Caso precise de ajuda não hesite em perguntar!

 

Grande abraço!

 

Fico no aguardo, grande abraço!

  • Obrigado 1
Postado

@DiF Amigo, perdão por mencionar você. 

 

Tô muito precisando saber sobre uma situação:

 

Esquema dos arquivos e pastas:

diretório A

|_index.php    

|__diretório B

     |_ cookies.php    

 

Tenho esse diretório A, dentro dele tem minha index.php, ela tem um javascript que quando um botão é clicado manda um valor com o método POST para o arquivo cookies.php, esse está dentro desse diretório B (como demostrado acima). O problema é que o cookie setado em cookies.php não "desce" para a pasta do diretório A.


Rapaz, salva nisso por favor!

 

@ArThDsL também agradeço pela ajuda :)

adicionado 6 minutos depois
$.post("cookies.php", {okCookie: aceito}, function(retorno){

O projeto apresentado estava funcionando, porém mudei isso acima para:

$.post("diretorioB/cookies.php", {okCookie: aceito}, function(retorno){

 

Percebeu? ao mudar o cookies.php de pasta nasce o problema!

 

Espero que meu problema tenha ficado claro para que você consiga me salvar ! Valeu :)

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!