ColdFusion会话变量未正确设置

时间:2015-04-27 13:55:49

标签: coldfusion

我有一些会话变量我需要设置权限,只有userID,userName和sessionAdmin变量正在通过。我做了一个cfdump,看到所有的变量都设置为0,这是cfparam的默认值。我也无法将页面重定向到我的示例地址。

login.cfm

<cfif isDefined("FORM.login")>
  <cfset Encryptpwd = Encrypt(FORM.password, application.PsswrdKy)>
  <cfset loginInfo = CFCmain.getLogin(FORM.username,Encryptpwd)>
  <cflock timeout=20 scope="session" type="exclusive">
    <cfset session.UserName = loginInfo.username>
    <cfset session.userid = loginInfo.id>
    <cfset session.Access_admin = loginInfo.superadmin>
    <cfset session.Access_var1 = loginInfo.var1>
    <cfset session.Access_var2 = loginInfo.var2>
    <cfset session.Access_var3 = loginInfo.var3>
    <cfset session.Access_var4= loginInfo.var4>
    <cfset session.Access_agency = loginInfo.agency>
  </cflock>
  <cflocation url="http://www.google.com">
</cfif>

和main.cfc我的变量是从db

中提取的
<cffunction name= "getLogin" access="remote" returntype="any" >
  <cfargument name="uname" type="string">
  <cfargument name="pwd" type="string">
  <cfquery name="getdata" datasource="#application.db#">
    select * from users2 where username = '#arguments.uname#' and password = '#arguments.pwd#'
  </cfquery>
  <cfreturn getdata>
</cffunction>

1 个答案:

答案 0 :(得分:0)

对我来说,看起来变量FORM.login没有定义!? 尝试:

<cfif isDefined("FORM.login")>
    <cfdump var="hello">
    <cfabort>
    ....

如果你没有看到&#34;你好&#34;,FORM.login没有被定义......

尝试:

<cfdump var="#form#" abort>

查看表单范围中定义的内容。

其他人怎么说,请使用cfqueryparam !! (安全)

<cfquery name="getdata" datasource="#application.db#">
    select * 
    from users2 
    where username = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.uname#">
    and password = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.pwd#">
</cfquery>