我的会话变量的值?

时间:2009-12-02 00:44:35

标签: coldfusion

这是我创建会话变量的代码:

<cflock timeout="999" scope="Session" type="Exclusive">
  <cfset Session.IDUsers = "">
</cflock>

我需要在= ""中添加一个值,但我希望将值更改为用户ID,具体取决于登录的用户。所以我不能只在那里放任何数字等。我该怎么办?

2 个答案:

答案 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>

这是一个非常基本的登录表单,但它应该让你入门。