-
26-01-2014, 13:33 #1Deactivated user
- Registered
- 14/08/10
- Location
- Diest
- Posts
- 2,419
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 8/16
Cookie set door jQuery wordt niet gelezen door PHP, maar wel door jQuery?
Zoals ik al op StackOverflow postte:
Met de jQuery cookie plugin set ik een cookie wanneer een user ergens op klikt in een boodschap:
Als de user dan naar een andere pagina op dat domein navigeert, controleer ik via PHP of de gesette cookie bestaat, en indien NIET wordt de boodschap nogmaals getoond.Code:$("#cookies-not-allowed a").click(function() { $.cookie("cookies-allowed", "true", {expires: 365}); $("#cookies-not-allowed").slideUp(700); });
Dit werkt niet. Wat wel werkt is via jQuery te controleren op de cookie en dan het element te verbergen, maar dat gaat natuurlijk veel trager - en zou het graag server-side hebben.PHP Code:<?php if(!isset($_COOKIE['cookies-allowed'])) : ?>
<div id="cookies-not-allowed">THE MESSAGE</div>
<?php endif; ?>
Dit werkt dus wel:
Code:if ($.cookie("cookies-allowed")) $("#cookies-not-allowed").hide();no votes
-
-
26-01-2014, 14:12 #2
Uit de documentatie van jQuery cookie:
Dus ik vermoed:Code:Create expiring cookie, valid across entire site: $.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });
Code:$("#cookies-not-allowed a").click(function() { $.cookie("cookies-allowed", "true", {expires: 365, path: '/' }); $("#cookies-not-allowed").slideUp(700); });no votes
-
26-01-2014, 14:48 #3Deactivated user
- Registered
- 14/08/10
- Location
- Diest
- Posts
- 2,419
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 8/16
no votes
-
26-01-2014, 15:45 #4
Vanop Wikipedia:
Volgens mij kan het via JS wel omdat je Javascript Origin voor alle pagina's (document) hetzelfde is en je dus het volledige cookie object (als één lange string) gaat uitlezen. Die plugin zou natuurlijk automatisch paths die niet voldoen uit het read gedeelte kunnen weghalen. T is weekend, nie veel goesting om het uit te zoekenThe cookie domain and path define the scope of the cookie—they tell the browser that cookies should only be sent back to the server for the given domain and path. If not specified, they default to the domain and path of the object that was requested.
no votes
-
26-01-2014, 16:49 #5Deactivated user
- Registered
- 14/08/10
- Location
- Diest
- Posts
- 2,419
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 8/16
Ach, ik ben al blij dat het werkt. Bedankt.
no votes
-
27-01-2014, 11:40 #6Deactivated user
- Registered
- 14/08/10
- Location
- Diest
- Posts
- 2,419
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 8/16
Double post: werkt blijkbaar toch niet. Live example.
no votes
-
27-01-2014, 14:20 #7
T gaat in elk geval door naar de server, dus t ligt zeker nie aan je cookies die nie met request meegaan (juist gecheckt via tcpdump). Der zal ier hopelijk een PHP developer zijn die je verder helpt. Je zou om te beginnen eens op je server die $_COOKIE hash kunnen loggen om te zien wat erin zit.
no votes
-
27-01-2014, 16:39 #8Member
- Registered
- 19/02/06
- Location
- -
- Posts
- 4,048
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/73
Ik denk dat ik het probleem ontdekt heb.
Als ik naar een pagina op je site ga waar ik al geweest ben voor ik die cookieboodschap wegklikte, haalt mijn browser die pagina volledig uit de cache (en in de cache zit de pagina met de boodschap).
Als ik naar een nieuwe pagina ga wordt de cookie wel mooi meegestuurd en verschijnt er geen boodschap meer.no votes

