Vraag & Antwoord

Webprogrammeren & scripting

Cookies &*@@$

2 antwoorden
  • Ik had er nooit aan moeten beginnen maar ik ben met cookies bezig. Dit om gebruikers van een interne telefoonlijst hun favo sorteervolgorde te laten bewaren. Het cookie wordt geschreven met php, en wel als volgt [code:1:b1f13d46f9] &lt;?php //Default sorteervolgorde if (isset($order)){ //Er is een default gekozen =&gt; wegschrijven naar cookie setcookie(&quot;IntTel_DefOrd&quot;, $order, time()+28*24*60*60); } else { $order=&quot;afd&quot;; } [/code:1:b1f13d46f9] Dit alles staat uiteraard voor de &lt;html&gt; tag. En het cookie wordt ook daadwerkelijk geschreven. Het uitlezen van de cookie wordt gedaan in het menu wat we gebruiken. Een of ander javascript ding wat een collega opgeduikelt heeft. De functie die de cookie uitleest is als volgt: [code:1:b1f13d46f9] function getCookie(name) { // use: getCookie(&quot;name&quot;); var re = new RegExp(name + &quot;=([^;]+)&quot;); var value = re.exec(document.cookie); return (value != null) ? unescape(value[1]) : null; } var today = new Date(); var expiry = new Date(today.getTime() + 28 * 24 * 60 * 60 * 1000); // plus 28 days function setCookie(name, value) { // use: setCookie(&quot;name&quot;, value); document.cookie=name + &quot;=&quot; + escape(value) + &quot;; expires=&quot; + expiry.toGMTString(); } function LaadIntTel(){ deforder=getCookie(&quot;IntTel_DefOrd&quot;); parent.frames[&quot;main&quot;].location= &quot;../int_tel/int_tel.php?order=&quot;+deforder; } [/code:1:b1f13d46f9] Ooit heeft dit gewerkt, echter momenteel wordt de waarde van het cookie op null gezet zodra hij wordt uitgelzen. Iemand? _________________ 4F6E65204F5320746F2072756C65207468656D20616C6C2C204F6E65204F5320746 F2066696E64207468656D2C204F6E65204F5320746F206272696E67207468656D20 616C6C20616E6420696E20746865206461726B6E6573732062696E64207468656D2E20 <font size=-1>[ Dit Bericht is bewerkt door: Bilbo op 2002-01-21 14:23 ]</font>
  • Het cookie wordt wel degelijk door PHP geschreven, maar is pas leesbaar NA opnieuw laden van de pagina. Dus als je na het zetten van het cookie (dmv PHP) de pagina waar je het cookie wilt gebruiken opnieuw laad (en niet direct erna) zal het cookie wel een leesbare waarde hebben. Ik heb getest met onderstaande pagina's (uiteraard naar eigen wens uit te breiden/samen te voegen :wink: ) cook.htm : [code:1:4e42a32d60] &lt;html&gt; &lt;script language=&quot;JavaScript&quot;&gt; function getCookie(name) { // use: getCookie(&quot;name&quot;); var re = new RegExp(name + &quot;=([^;]+)&quot;); var value = re.exec(document.cookie); return (value != null) ? unescape(value[1]) : null; } var today = new Date(); var expiry = new Date(today.getTime() + 28 * 24 * 60 * 60 * 1000); // plus 28 days function setCookie(name, value) { // use: setCookie(&quot;name&quot;, value); document.cookie=name + &quot;=&quot; + escape(value) + &quot;; expires=&quot; + expiry.toGMTString(); } function LaadIntTel(){ deforder=getCookie(&quot;IntTel_DefOrd&quot;); document.location= &quot;int_tel.php?order=&quot;+deforder; } &lt;/script&gt; &lt;a href=&quot;javascript:LaadIntTel()&quot;&gt;getcookie&lt;/a&gt; &lt;/html&gt; [/code:1:4e42a32d60] int_tel.php : [code:1:4e42a32d60] &lt;?php //Default sorteervolgorde if (isset($order)){ //Er is een default gekozen =&gt; wegschrijven naar cookie setcookie(&quot;IntTel_DefOrd&quot;, $order, time()+28*24*60*60); echo &quot;writen&quot;; } else { $order=&quot;afd&quot;; } echo $order.&quot;&lt;&lt;&lt;&lt;&quot;; ?&gt; &lt;script language=&quot;JavaScript&quot;&gt; document.location=&quot;page2.htm&quot;; &lt;/script&gt; [/code:1:4e42a32d60] page2.htm : [code:1:4e42a32d60] &lt;html&gt; &lt;script language=&quot;JavaScript&quot;&gt; function getCookie(name) { // use: getCookie(&quot;name&quot;); var re = new RegExp(name + &quot;=([^;]+)&quot;); var value = re.exec(document.cookie); return (value != null) ? unescape(value[1]) : null; } alert(getCookie(&quot;IntTel_DefOrd&quot;)); &lt;/script&gt; &lt;/html&gt; [/code:1:4e42a32d60]

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.