2013-03-05 1 views
0

Может ли кто-нибудь просмотреть этот код и сообщить мне, почему я получаю переменную ID undefined error?Идентификатор переменной undefined

<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> 
+0

Поскольку переменная id в строке не существует в переменных, форме или URL-области. Где вы определяете эту ценность? Должно ли это быть user.id? –

+0

Да, это в user.id. –

+0

Испытали ли вы это в Coldfusion 9 и Coldfusion 10. Если у вас есть, тогда скажите об этом в вопросе, иначе, пожалуйста, выберите версию Coldfusion, в которой у вас проблема. –

ответ

3

Вам необходимы правильно охвата переменного (как я уже говорил в моем комментарии). Изменение = id на = user.id

+0

Спасибо за вашу помощь! –

+0

@sulemankhan - Если вы нашли ответ полезным, не стесняйтесь его повышать. :) – Leigh

1

Я не вижу, где вы определяете идентификатор. Если вы не определите его, прежде чем пытаться получить к нему доступ, вы получите сообщение об ошибке.

<cfset session.auth.id = id> 
5

Вы сэкономите себя (и других будущих разработчиков) много головных болей, указав свои переменные.

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

Если пользователь является запрос или структура, то вы можете также ссылаться на вашу запись с точечной нотацией

<cfset session.auth.id = User.id[1]> 
+3

«Спасите себя (и других будущих разработчиков) много головных болей, просматривая переменные». - Так верно – AlexP