2010-06-17 5 views
7

'da bir çerezde son kullanma tarihinin nasıl ayarlanacağı, bir çerezin son kullanma tarihini cfscript içinde ayarlayamayacak gibi görünmüyor. herhangi bir ipucu? Coldfusion 9 btw.cfscript

cevap

10

<cfcookie> eşdeğerine <cfscript> eşdeğeri, yalnızca Çerez kapsamı bellek yalnızca değişkenlerinin doğrudan atanmasını sunar. Kullanıcı sisteminde saklanan kalıcı çerezleri ayarlamak için doğrudan atamayı kullanamazsınız. Bu nedenle, yalnızca CFML komut dosyası kullanarak kalıcı çerezler ayarlamak istiyorsanız, bir sarmalayıcı işlevi yazmanız gerekecektir.

+0

evet, teşekkür ... düşündüm ve zaten yaptım kadarıyla o. – noobsaibot

8

Bu UDF'yi yazdım. HttpOnly sadece CF9 olduğunu unutmayın, böylece CF8 altında kaldırmak isteyebilirsiniz.

<cffunction name="setCookie" access="public" returnType="void" output="false"> 
<cfargument name="name" type="string" required="true"> 
<cfargument name="value" type="string" required="false"> 
<cfargument name="expires" type="any" required="false"> 
<cfargument name="domain" type="string" required="false"> 
<cfargument name="httpOnly" type="boolean" required="false"> 
<cfargument name="path" type="string" required="false"> 
<cfargument name="secure" type="boolean" required="false"> 
<cfset var args = {}> 
<cfset var arg = ""> 
<cfloop item="arg" collection="#arguments#"> 
    <cfif not isNull(arguments[arg])> 
     <cfset args[arg] = arguments[arg]> 
    </cfif> 
</cfloop> 

<cfcookie attributecollection="#args#"> 
</cffunction> 

<cfscript> 
    if(!structKeyExists(cookie, "hitcount")) setCookie("hitcount",0); 
    setCookie("hitcount", ++cookie.hitcount); 
    setCookie("foreverknight",createUUID(),"never"); 
</cfscript> 

<cfdump var="#cookie#"> 
2

CF9.0.1 bir CFCookie cfscript eşdeğeri yoksa, ancak CFFUNCTION kullanmak istiyorsanız, yine 8 & 9. Sen olacak, CF6, 7 ekleyerek HTTPOnly desteğin yanında yapabilir bir UDF oluşturmak mümkün, ama sadece CFSCRIPT biçiminde olmayacak

(kaynak koduyla) burada bunu nasıl dair iyi bir writeup var (hayır büyük kayıp.): http://www.modernsignal.com/coldfusionhttponlycookie (I don' Bunun nedeninin CFLib.org adresinde bulunmadığını biliyoruz.)

Başta karşılaştığım bir sorun CFHEADER kullanarak çerezler oluşturmak, karışık vaka isimlerine izin vermesiydi ve ColdFusion sadece büyük harfli çerezleri silme, & güncelleme yeteneğine sahip oldu.

yükleyin (veya HTTPOnly ayarı) FireCookie Kundakçı uzantısı Firefox'ta/yorum çerezleri test etmek ve son kullanma tarihini doğrulamak için: http://www.softwareishard.com/blog/firecookie/