Значение для моей переменной сеанса? - PullRequest
0 голосов
/ 02 декабря 2009

Вот мой код для создания переменной сеанса:

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

Мне нужно указать значение в = "", но я хочу, чтобы значение менялось на идентификатор пользователя, в зависимости от того, какой пользователь вошел в систему. Поэтому я не могу просто ввести туда любое число и т. Д. Что мне делать?

Ответы [ 2 ]

1 голос
/ 02 декабря 2009

По сути, вы собираетесь делать это при входе пользователя в систему. Процедура входа может выглядеть следующим образом:

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

Пока они не вошли в систему, вы не можете знать, какое значение вам нужно. Однако, как только вы определили, что они те, кем они себя называют, и вы собираетесь их впустить, вы можете установить переменную сеанса.

0 голосов
/ 06 декабря 2009

Хорошо, я думаю, вам нужна базовая разбивка того, как это должно работать. Шаг 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>

Это очень простая форма входа в систему, но она должна помочь вам начать работу.

...