我在检查rememberme按钮时有以下功能来设置管理员cookie:
<!--- setRememberMeCookie() Method --->
<CFFUNCTION NAME="setRememberMeCookie" ACCESS="REMOTE" RETURNTYPE="BOOLEAN" DISPLAYNAME="setRememberMeCookie" HINT="Saves user login details to cookie">
<CFARGUMENT NAME="Usuario" TYPE="STRUCT" REQUIRED="YES">
<!--- Save the struct to a cookie --->
<CFSCRIPT>
adminStrc = Arguments.Usuario;
getPageContext().getResponse().addHeader("Set-Cookie", "name=#adminStrc.Nombre#; value=#adminStrc.Valor#; SECURE=yes; Max-Age=31622400; DOMAIN=eMercado.com; path=/Cookies; httponly=true" );
</CFSCRIPT>
<CFRETURN true>
</CFFUNCTION>
我正在尝试使用以下代码测试此函数:
<CFSCRIPT>
usuarioCookie = "#application.UsuarioCookie#"; //My Cookies Component
adminCookie = structNew();
adminCookie.Nombre = "Admin_Clave";
adminCookie.Valor = "2E372208-446D-57A5-07199C09B88DA458";
//To test the Cookie function
testCookie = usuarioCookie.setRememberMeCookie(adminCookie);
</CFSCRIPT>
<p><CFDUMP VAR="#testCookie#"> </p>
当我运行代码时,收到以下错误:
在ADMINSTRC中未定义元素VALOR。
请告诉我我做错了什么? 欢呼声。
答案 0 :(得分:2)
刚刚在这里采取了一个尝试,但应用程序范围是共享内存,在您的函数中,您并没有明确地将adminStr的范围限制为本地。
或许使用VAR关键字将adminStr变量混淆到本地范围将解决此问题。
当然,也可能发生的事情是您在应用程序范围内拥有代码的缓存旧副本。因此,您实际上并没有运行您认为的代码。
最好在缓存之前测试变量范围内的组件。
ohh和cfcookie通常是在cf中处理cookie的方式,以防万一你不知道。