2016-02-11 2 views
0
<cffunction name="checkUsers" access="public" output="false" returntype="any"> 
    <cfargument name="dbname" type="any" required="no" default="#SERVER.cfc.core.getDBName()#" /> 
    <cfargument name="myForm" type="Struct" required="yes"> 

    <cfset LOCAL = structNew() /> 

    <cfquery name="Login" datasource="#SERVER.cfc.core.getDSN()#">    
     SELECT * 
     FROM logboek.tbl_users 
     where Users_name = <cfqueryparam cfsqltype="cf_sql_varchar" value="#ARGUMENTS.myForm.Users_name#" />  
    </cfquery> 

    <cfif isDefined("form.Users_name") and isDefined("form.Users_password")> 
     <cfif FORM.Users_password EQ login.Users_password> 
      <a href="http://toomba.local/index.cfm/action/blog.Logboek">Logboek</a> 
     </cfif> 

    <cfelse> 
     <a href="http://toomba.local/index.cfm/action/blog.Logboek_login">Login</a> 
    </cfif> 
</cffunction> 

я хочу проверить с пользователями, если пользователь существует и пароль правильно перейти к blog.logboek, если пользователь не существует или неверный пароль перейти к blog.logboek_login снова. Но после того, как я установил там NEQ, не имеет значения, пользуюсь ли я случайным паролем, или если я использую правильный пароль, он всегда будет возвращаться на страницу входа. код редактируется, но все еще застрял на странице входа.Coldfusion - Не можете войти в систему после проверки NEQ

+2

Если вы сомневаетесь, посмотрите на ваши данные. '' ваш друг. –

+5

Вы также должны хешировать свои пароли. Если вы храните пароли обычного текста, которые должны быть исправлены немедленно. –

+0

Как отметил Дэн, не просто предполагайте правильность логики ;-) Дамп данных и добавьте код отладки, чтобы проверить, что страница получает ожидаемые значения И проверяет, выполнены ли ожидаемые условия cfif/cfelse. Кроме того, этот код также, как представляется, представляет собой смешение тестов областей 'arguments' и' form'. Для функций придерживайтесь области аргументов и не забудьте локализовать все функциональные локальные переменные - включая имена запросов. – Leigh

ответ

-1

здесь у меня есть исправление:

<cffunction name="checkUsers" access="public" output="false" returntype="any"> 
    <cfargument name="dbname" type="any" required="no" default="#SERVER.cfc.core.getDBName()#" /> 
    <cfargument name="myForm" type="Struct" required="yes"> 

    <cfset LOCAL = structNew() /> 
    <cfset LOCAL.myReturn = FALSE /> 
    <cfquery name="Login" datasource="#SERVER.cfc.core.getDSN()#">    
     SELECT * 
     FROM logboek.tbl_users 
     WHERE Users_name = <cfqueryparam cfsqltype="cf_sql_varchar" value="#ARGUMENTS.myForm.Users_name#" />  
    </cfquery> 
    <cfif isDefined("form.Users_name") and isDefined("form.Users_password")> 
     <cfif FORM.Users_password EQ Login.Users_password> 
      <cfset LOCAL.myReturn = TRUE /> 
     <cfelse> 
      <cfset LOCAL.myReturn = FALSE />  
     </cfif> 
    </cfif> 
    <cfreturn LOCAL.myReturn/> 
</cffunction> 
Смежные вопросы