Autor | Zpráva | ||
---|---|---|---|
leorond Profil |
#1 · Zasláno: 14. 11. 2015, 20:54:19
Ahoj, mám takoví dotaz ohledně cookies na webu a to konkrétně potvrzení souhlasu.
Má vize je taková 1. Zjistit IP 2. Po potvrzení zapsat do DB IP adresu a 1 ( souhlas ) 3. Po příchodu z IP která je již zapsána v DB nezobrazovat znovu formulář Chtěl bych se zeptat zda je to dobré řešení, ukládat všechny IP do DB a zda by se nenabízelo lepší řešení. |
||
lionel messi Profil |
#2 · Zasláno: 14. 11. 2015, 20:57:46
leorond:
„Chtěl bych se zeptat zda je to dobré řešení, ukládat všechny IP do DB a zda by se nenabízelo lepší řešení.“ Nie je to vhodné riešenie. Použi podmienku: Ak cookie s názvom souhlas neexistuje, zobrazíš upozornenie. Po kliknutí na súhlas vytvoríš sušienku s názvom souhlas a platnosťou do zatvorenia prehliadača (čiže platnosť nastavíš na 0). Ak cookie existuje, upozornenie nezobrazíš. |
||
leorond Profil |
Takže něco takového?
Na začátek index.php <?php if(!$_COOKIE['neco']){ header("Location: varovani.php"); } souhlas.php <?php if($_GET['souhlas'] != 'ano'){ echo "<a href=\"souhlas.php?souhlas=ano\">Souhlasim se vstupem</a>"; } else{ setcookie("TestCookie", $value, time()+31536000); /* expiruje za rok */ header("Location: index.php"); } } ?> |
||
Tomáš123 Profil |
#4 · Zasláno: 15. 11. 2015, 09:16:44
leorond:
Ten skript nemôže fungovať: - o súbore souhlas.php nie je nikde zmienka; - premenná $value je nedefinovaná;
- predvolene je expirácia do zatvorenia okna prehliadača, nemusíš tam vymýšľať kľučky; - súhlas sa nerieši presmerovaním, väčšinou existuje panel, ktorý upozorňuje, že používaním webu súhlasíš s používaním Cookies; ak tvoj web nie je na Cookies existenčne závislý, možno má význam presmerovávať, ale ďalej to riešiť inak. - neviem odhadnúť ako sa vyhodnotí podmienka v druhom skripte, keď vôbec neexistuje kľúč, ktorý sa vyhodnocuje Za predpokladu, že by moja stránka nevyžadovala Cookies, dal by som užívateľovi na výber s tým, že kým by explicitne nezamietol, Cookies by som využíval. Ale záleží od obsahu. |
||
Alphard Profil |
#5 · Zasláno: 15. 11. 2015, 11:24:18
Technické řešení bych navrhoval spíš takto: phpfashion.com/jak-na-souhlas-s-cookie-v-eu. Cookie se nastavuje pomocí javascriptu a celé je to na pár řádků.
|
||
leorond Profil |
Alphard přesně z tohoto článku nyní vycházím.
Tomáš123 vím že nebude fungovat, taky jsem tam nikde nepsal že je to řešení které použiju. Alphard to je snad zakleté xD absolutně mi to nefunguje :D <div class="eu-cookies" n:if="empty($_COOKIE[eu-cookies])"> Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. <button>V pořádku</button> <a href="https://www.google.com/policies/technologies/cookies/">Další informace</a> </div> <noscript><style>.eu-cookies { display:none }</style></noscript> .eu-cookies { position: fixed; left: 0; top: 0; width: 100%; color: white; background-color: black; z-index: 1000; } .eu-cookies button { background: green; color: white; } $('.eu-cookies button').click(function() { var date = new Date(); date.setFullYear(date.getFullYear() + 10); document.cookie = 'eu-cookies=1; path=/; expires=' + date.toGMTString(); $('.eu-cookies').hide(); }); Sice se mi zobrazí vše tak jak má ale po kliknutí na button se nic nestane a já bych chtěl aby to zmizelo. Je možné že cookies vůbec nepoužívám? :D Může mi to vůbec někdo dokázat? |
||
Fisir Profil |
#7 · Zasláno: 15. 11. 2015, 13:52:29
Reaguji na leoronda:
Protože ten HTML kód s lištou není obyčejný HTML kód, ale Latte šablona. Atribut n:if přepiš do odpovídající PHP podmínky.
|
||
lionel messi Profil |
#8 · Zasláno: 15. 11. 2015, 14:14:27
leorond:
„Může mi to vůbec někdo dokázat?“ Áno. |
||
Alphard Profil |
#9 · Zasláno: 15. 11. 2015, 14:18:28
Také by to šlo úplně bez PHP, viz Živá ukázka.
|
||
leorond Profil |
:D To já vím že může :D měl to být pokus o vtip :D
Takže tam potřebuji podmínku zda je něco v cookies, asi takto? if(empty($_COOKIE[eu-cookies])) a předpokládám že až zato vložit <div class="eu-cookies"> Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. <button>V pořádku</button> <a href="https://www.google.com/policies/technologies/cookies/">Další informace</a> </div> jelikož chci aby se to ukázalo pokud je cookies prázdné Píšu to dobře? Alphard kdyby tu slo dávat LIKE tak máš palec hore :) Děkuji |
||
leorond Profil |
#11 · Zasláno: 16. 11. 2015, 01:33:58
Alphard vím že to bude znít hloupě ale tvůj příspěvek [#9] je dobré řešení :D jen jsem kliknul v živé ukázce zda to funguje a už se mi to nezobrazí vůbec nikde :D
Jak to mohu zvrátit? :D |
||
Alphard Profil |
#12 · Zasláno: 16. 11. 2015, 09:51:27
Smazat cookie, někde ve vývojářských nástrojích prohlížeče. Testovat to lze dobře v anonymním režimu.
Nicméně, cookie by měla být nastavená jen pro danou doménu, takže je možné, že to prostě nefunguje. Defaultně je lišta skrytá a bez funkčního javascriptu se nic nezobrazí. Z možných příčin mě napadá nepřítomnost jQuery, nebo stará verze IE, Array.indexOf() je podporováno až od verze 9. |
||
leorond Profil |
#13 · Zasláno: 16. 11. 2015, 14:51:36
Jen se tak blbě zeptám, co když vložím do hlavičky nějak úhledně aby to netlouklo do očí nepotvrzovací hlášku "Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte."?
To by mělo stačit ne? Pokud s tím někdo nesouhlasí tak ať se dekuje ze stránek :D. Z právního hlediska by to mělo být v pořádku nebo se pletu? |
||
Časová prodleva: 8 let
|
0