2

我们最近刚刚将我们的测试服务器从 CF10 升级到了 CF16。问题之一是cookies。在我尝试登录我们的系统后,屏幕上显示的消息Cookies Are Not Enabled!。我检查了代码,并且cfif检查是否Cookie.test未定义。这是我的代码示例:

<cfif NOT IsDefined("Cookie.test")>
    Cookies Are Not Enabled!
    <cfabort>
</cfif>

这是我找到 cookie.test 的代码行:

<cfcookie name="test">

它位于页面的最底部,位于isDefined()最顶部。所以我想知道如何在 ColdFusion 2016 中检查这一点?谢谢你。

4

1 回答 1

2

您可以使用isBoolean(URLSessionFormat("true"))来检查 cookie 是否启用。

<cfif isBoolean(URLSessionFormat("true"))>
  cookies are enabled
<cfelse>
  cookies are not enabled
</cfif>

另外,我创建了一个 UDF

https://cflib.org/udf/isCookiesEnabled

/**
 * Returns true if browser cookies are enabled.
 * 
 * @return Returns a boolean. 
 * @author Alex Baban  
 *  
 */
function isCookiesEnabled() {
    return IsBoolean(URLSessionFormat("True"));
}

<cfoutput>#isCookiesEnabled()#</cfoutput>


现场演示:

<cfset result = IsBoolean(URLSessionFormat("True")) />
<cfdump var = "#result#" />

https://trycf.com/gist/2746d807170a0dc74e7349935320a78e/lucee5?theme=monokai

于 2017-12-21T20:31:56.057 回答