这是我创建会话变量的代码:
<cflock timeout="999" scope="Session" type="Exclusive">
<cfset Session.IDUsers = "">
</cflock>
我需要在= ""
中添加一个值,但我希望将值更改为用户ID,具体取决于登录的用户。所以我不能只在那里放任何数字等。我该怎么办?
答案 0 :(得分:1)
基本上,当您将用户登录时,您将执行此操作。登录例程可能如下所示:
<cfquery datasource="cfgossip" name="signin">
SELECT
ID_USERS
FROM
USERS
WHERE
UN = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.un#" />
AND PW = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.pw#" />
</cfquery>
<cfif signin.recordCount>
<cfset session.idUsers = signin.id_users />
</cfif>
在他们登录之前,您无法知道您需要的价值。但是,一旦你确定他们是他们所说的人并且你要让他们进入,你就可以设置会话变量。
答案 1 :(得分:0)
好的,我认为你需要对这应该如何运作的基本细分。 第1步:用户访问您需要登录的网站/应用的一部分。您检查session.userid是否设置为有效值。如果没有转到登录界面。
第2步:使用登录表单呈现用户。
<form action="checklogin.cfm">
<input type="text" name="username" value="">
<input type="password" name="pass" value="">
<input type="submit" value="login">
</form>
步骤3:点击登录后,表单将提交到一个操作页面,该页面会检查提供的凭据是否与有效用户匹配。
<cfquery datasource = "myDB" name = "getUsers">
SELECT userID
FROM USERS
WHERE username = <cfqueryparam cfsqltype = "cf_sql_varchar" value = "#form.username#" />
AND password = <cfqueryparam cfsqltype = "cf_sql_varchar" value = "#form.pass#" />
</cfquery>
步骤4:如果有效用户转到登录区域,则返回登录屏幕
<cfif getUsers.recordCount GT 0>
<cfset session.IDUsers = getUsers.userID />
<cflocation url="home page for logged in users">
<cfelse>
<cflocation url="return to login form and display invalid login message">
</cfif>
这是一个非常基本的登录表单,但它应该让你入门。