我有一些会话变量我需要设置权限,只有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>
答案 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>