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 に答える