как установить дату истечения срока действия куки в cfscript - PullRequest
7 голосов
/ 17 июня 2010

, похоже, не может установить дату истечения срока действия куки в cfscript. какие-нибудь намеки? это холодное слияние 9 между прочим.

Ответы [ 3 ]

10 голосов
/ 17 июня 2010

<cfscript>, эквивалентный <cfcookie>, предлагает только прямое назначение переменных только для объема памяти Cookie. Вы не можете использовать прямое назначение для установки постоянных файлов cookie, которые хранятся в пользовательской системе. Поэтому вам придется написать функцию-обертку, если вы хотите установить постоянные куки-файлы, используя только скрипт CFML.

8 голосов
/ 17 июня 2010

Я написал этот UDF. Обратите внимание, что httpOnly - это только CF9, поэтому вы хотите удалить его под CF8.

<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 голосов
/ 03 августа 2011

CF9.0.1 не имеет эквивалента CFCookie cfscript, но если вы хотите использовать CFFUNCTION, вы можете сделать это в дополнение к добавлению поддержки HTTPOnly для CF6, 7, 8 и 9. Вы сможете создатьUDF, но он просто не будет в формате CFSCRIPT (без больших потерь.)

Есть хорошая запись о том, как это сделать здесь (с исходным кодом): http://www.modernsignal.com/coldfusionhttponlycookie (я не понимаюЯ не знаю, почему это не доступно на CFLib.org.)

Одна проблема, с которой я первоначально столкнулся при создании файлов cookie с использованием CFHEADER, заключалась в том, что он допускал смешанные имена, а ColdFusion мог только читать, обновлять иудаление файлов cookie с именами в верхнем регистре.

Чтобы проверить / просмотреть файлы cookie в Firefox и проверить дату истечения срока действия (или параметр HTTPOnly), установите расширение FireCookie Firebug: http://www.softwareishard.com/blog/firecookie/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...