【问题标题】:Using session without declaring session in Application.cfm使用会话而不在 Application.cfm 中声明会话
【发布时间】:2013-01-29 04:34:22
【问题描述】:

我需要在coldfusion中使用session而不在application.cfm中声明session。

【问题讨论】:

  • 你现在应该使用 application.cfc 但为什么不能使用<cfapplication name="..." sessionmanagement="Yes">
  • 很多地方仍然停留在 application.cfm 上。它是“如果它没有坏,那么就不要修复它”的情况之一。
  • “我需要在 Coldfusion 中使用 session 而不在 application.cfm 中声明 session。” - 不,你不需要。您可能认为确实如此,但除非您遇到一些罕见的情况,否则您可以(并且应该)酌情使用 Application.cfm 或 Application.cfc。 (如果你确实遇到了这种罕见的情况,正如 Travis 所说,cfapplication 具有一致的名称就是你所需要的。)
  • 是的,如果有人简单地说“现代应用程序不使用 App.cfm”并且他们误解了这一点,也不会感到惊讶。
  • 这个问题没什么意义。你想完成什么你不会声明会话?

标签: session coldfusion application.cfm


【解决方案1】:

我认为,可以在页面上声明具有空值的会话变量,并且可以在您想要使用的地方使用。

【讨论】:

  • 如果不先启用会话,您将无法使用会话,这需要在 cfapplication 或 Application.cfc 中将 sessionmanagement 设置为 true,如上所述。
  • 此外,这是一个非常糟糕的例子 - SELECT * 应该列出特定的列,用户名应该是一个参数(即cfqueryparam),#getdata.recordcount# gt 0 有不必要的哈希和冗余比较,最后您尝试复制变量的值,而是将其名称分配为字符串。哦,cfoutput 标签内没有输出,这使得它们成为不必要的噪音。
  • 很高兴看到有一家 ColdFusion 商店,但我不会用这样的例子来宣传您的网站/服务。
  • -1。不知道为什么这个答案被接受。它包含多个错误并且实际上不起作用...
【解决方案2】:

你有没有想过不做会话而是做一个客户端变量?

<CFQUERY NAME="getLogin" datasource="#reqest.dsn#">
     SELECT int_pk_id
     FROM tbl_users
     WHERE var_email = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#FORM.Email#">
</CFQUERY>
<CFSET CLIENT.User_ID = "#getLogin.int_pk_id#">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多