anoniem Geplaatst: 21 januari 2002 Delen Geplaatst: 21 januari 2002 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] <?php //Default sorteervolgorde if (isset($order)){ //Er is een default gekozen => wegschrijven naar cookie setcookie("IntTel_DefOrd", $order, time()+28*24*60*60); } else { $order="afd"; } [/code:1:b1f13d46f9] Dit alles staat uiteraard voor de <html> 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("name"); var re = new RegExp(name + "=([^;]+)"); 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("name", value); document.cookie=name + "=" + escape(value) + "; expires=" + expiry.toGMTString(); } function LaadIntTel(){ deforder=getCookie("IntTel_DefOrd"); parent.frames["main"].location= "../int_tel/int_tel.php?order="+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 [ Dit Bericht is bewerkt door: Bilbo op 2002-01-21 14:23 ] Quote Link naar reactie
anoniem Geplaatst: 21 januari 2002 Auteur Delen Geplaatst: 21 januari 2002 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] <html> <script language="JavaScript"> function getCookie(name) { // use: getCookie("name"); var re = new RegExp(name + "=([^;]+)"); 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("name", value); document.cookie=name + "=" + escape(value) + "; expires=" + expiry.toGMTString(); } function LaadIntTel(){ deforder=getCookie("IntTel_DefOrd"); document.location= "int_tel.php?order="+deforder; } </script> <a href="javascript:LaadIntTel()">getcookie</a> </html> [/code:1:4e42a32d60] int_tel.php : [code:1:4e42a32d60] <?php //Default sorteervolgorde if (isset($order)){ //Er is een default gekozen => wegschrijven naar cookie setcookie("IntTel_DefOrd", $order, time()+28*24*60*60); echo "writen"; } else { $order="afd"; } echo $order."<<<<"; ?> <script language="JavaScript"> document.location="page2.htm"; </script> [/code:1:4e42a32d60] page2.htm : [code:1:4e42a32d60] <html> <script language="JavaScript"> function getCookie(name) { // use: getCookie("name"); var re = new RegExp(name + "=([^;]+)"); var value = re.exec(document.cookie); return (value != null) ? unescape(value[1]) : null; } alert(getCookie("IntTel_DefOrd")); </script> </html> [/code:1:4e42a32d60] Quote Link naar reactie
anoniem Geplaatst: 22 januari 2002 Auteur Delen Geplaatst: 22 januari 2002 Ik zal het zeker uit proberen... maar... Het vreemde is dat in de ontwikkelomgeving die we hebben http://devel/int_tel/ werkt het cookie wel goed. Sinds kort hebben we een produktie omgeving http:/intranet/int_tel/ en daar doet dezelfde code het niet Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen