变量ID未定义

时间:2013-03-05 20:25:42

标签: coldfusion coldfusion-9 cfml

任何人都可以查看此代码并告诉我为什么我会收到变量ID未定义错误吗?

<cffunction name="login" access="public" returntype="void">
  <cfargument name="rc" type="struct" required="true">
  <cfset user = getUserService().login(arguments.rc.Username,arguments.rc.password)>
  <cfif isDefined('User')>
    <cfset session.auth = structNew()>
    <cfset session.auth.isLoggedin = "yes"/>
    <cfset session.auth.user = user />
    <cfset session.auth.id = id>  
    <cfset session.auth.username = UserName />
    <cfset session.auth.password = password />
  <cfelse>
    <cfset rc.message = createMessage('error','','entered password is wrong')>
    <cfset variables.fw.redirect('login.default','message')>
  </cfif>
  <cfset variables.fw.redirect('')>
</cffunction>

3 个答案:

答案 0 :(得分:5)

通过确定变量的范围,您将为自己(和其他未来的开发者)节省很多麻烦。

<cfset session.auth.id = User.id>  

如果User是查询或结构,那么您也可以使用点符号

引用您的记录
<cfset session.auth.id = User.id[1]>  

答案 1 :(得分:3)

您需要正确调整变量的范围(正如我在评论中所述)。将= id更改为= user.id

答案 2 :(得分:1)

我看不到你在哪里定义ID。如果在尝试访问它之前没有定义它,则会出现错误。

<cfset session.auth.id = id>