Cookies disclaimer – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Cookies disclaimer – PHP – Fórum – Programujte.comCookies disclaimer – PHP – Fórum – Programujte.com

 

zoomfire0
Duch
26. 10. 2015   #1
-
0
-

 Zdravím, peru se se zobrazováním hlášky "Používáním ... vyjadřujete souhlas s používáním cookies blabla", mám tu kód, který první zjistí, jestli existuje cookie s názvem souhlas.

Pokud cookie souhlas neexistuje, provede se test, jestli má prohlížeč cookies povolený (tím, že se vygenerují 2 session a porovná se jejich ID).

  • Pokud jsou cookies povoleny, založí se nová cookie a $souhlas = 0, kdy se později na stránce ověří a zobrazí hlášku o tom, že je třeba dát souhlas s užitím cookies.
  • Pokud cookies nejsou povoleny, tak se dá $souhlas = 1, aby web měl za to, že byl souhlas vydán

Problém nastává v situaci, kdy jsou cookies povoleny v prohlížeči a cookie souhlas ještě neexistuje. Při prvním načtení stránky si kod myslí, že cookie existuje a nastaví $souhlas = 1, aniž by cookie doopravdy existovala. Až při druhém refreshi se podmínka provede správně a kód si všimne, že cookie souhlas neexistuje a nastaví správně $souhlas = 0.

<?php
ob_start();
$souhlas = 0;

if(!isset($_COOKIE['souhlas'])) {  //jestli není cookie k nalezení
  //kontrola, jestli jsou cookies vůbec povoleny
  session_start();
    $a = session_id();
  session_destroy();
  session_start();
    $b = session_id();
  session_destroy();  

  if ($a == $b) {
    //cookies povoleny, zapiš nové cookie a hoď hlášku o souhlas
    $souhlas = 0;
    setcookie('souhlas', 'ano', mktime(0,0,0,12,31,2030));
  }
  else {
    //cookies nejsou povoleny v prohlížeči
    $souhlas = 1;
  } 
}
else {
  //cookie nalezena, souhlas je již vydán
  $souhlas= 1;
}

ob_end_flush();
?>
Nahlásit jako SPAM
IP: 62.168.0.–
Hajrus0
Newbie
26. 10. 2015   #2
-
0
-

Všechno se provede tak jak má. Proč se nejprve nezeptáš, jestli cookies jsou povoleny? A potom bych se až ptal dále na cookie :) Pak by ti k tomuto nemělo docházet.

Nahlásit jako SPAM
IP: 78.45.224.–
zoomfire0
Duch
26. 10. 2015   #3
-
0
-

#2 Hajrus
Zkusil jsem, nemělo by, ale dělá to tu chybu pořád. Prostě až na 2. refresh se správně detekuje, že cookies neexistuje. Když jsem se koukal na cookies v prohlížeči, tak i když tam není (respektive je vymažu), bere to tak, že tam je a pošle $souhlas = 1

Nahlásit jako SPAM
IP: 89.176.88.–
Hajrus0
Newbie
26. 10. 2015   #4
-
0
-

#3 zoomfire 

<?php

ob_start();

$souhlas = 0;

session_start();
$a = session_id();
session_destroy();
session_start();
$b = session_id();
session_destroy(); 

if ($a == $b) 
{
    if(isset($_COOKIE['souhlas']))
    {
	echo "cookie je nastavena";
	//cookie nalezena, souhlas je již vydán
  	$souhlas= 1;
    }
    else
    {
        echo "cookie není nastavena";
	//cookies povoleny, zapiš nové cookie a hoď hlášku o souhlas
    	$souhlas = 0;
    	setcookie('souhlas', 'ano', mktime(0,0,0,12,31,2030));
    }
}
else 
{
   echo "Prohlížeč nepovoluje cookies";
   //cookies nejsou povoleny v prohlížeči
   $souhlas = 1;
}


ob_end_flush();
?>

Odzkoušel jsem toto a funguje mi to. Žádné problémy s refreshem nemám. Zkus vymazat staré cookies takto:
setcookie("souhlas", "", time()-3600);

Nahlásit jako SPAM
IP: 78.45.224.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Podobná vlákna

Cookies — založil Mirek Braho

Cookies — založil tomi86

Cookies — založil Pepa Rohlik

Cookies — založil Marty_SVK

Nevytváří Cookies — založil Alex

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý