0

谁能查看此代码并告诉我为什么我收到变量 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>
4

3 回答 3

5

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

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

如果 User 是查询或结构,那么您还可以使用点符号引用您的记录

<cfset session.auth.id = User.id[1]>  
于 2013-03-05T21:19:17.683 回答
3

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

于 2013-03-06T13:43:49.407 回答
1

我没有看到你在哪里定义 ID。如果您在尝试访问它之前没有定义它,您将收到错误消息。

<cfset session.auth.id = id>
于 2013-03-05T20:50:37.413 回答