Я тестирую, как защитить страницы в Coldfusion, и столкнулся с проблемой при попытке создать процесс, с помощью которого пользователи могут выйти из системы.
По сути, у меня есть три страницы:
- Страница A - Форма для отправки
Страница B
- Страница B - Это проверяет
form.username и form.password
против базы данных (работает нормально)
- Page
C - страница выхода (где я нахожусь
возникли проблемы).
Страница C выдает «переменная Session is undefined» ошибка
Вот код на странице C:
<cfset StructClear(Session)>
<cflocation url="index.cfm">
Вот код на странице B:
<cfif NOT IsDefined ("form.username")>
<cflocation url="index.cfm" addtoken="No">
</cfif>
<cfquery name="test" datasource="cfdb">
SELECT * FROM USERS
WHERE USERNAME = '#FORM.username#'
AND PASSWORD = '#FORM.password#'
</cfquery>
<!---<CFSET Session.LoggedIn = "1">
<CFSET Session.FirstName = "#test.FirstName#">--->
<CFIF test.RecordCount IS 0>
<cflocation url="index.cfm" addtoken="No">
<CFSET StructClear(Session)>
<cfelse>
<CFSET Session.LoggedIn = "1">
<!---<cflocation url="test.cfm" addtoken="No">--->
</cfif>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p><a href="logout.cfm">Log Out</a></p>
<p> </p>
<p> </p>
<p><br>
This content is protected.
</p>
</body>
</html>
Как видите, ничего сложного:)
Теперь я подумал, что переменная Session может быть доступна для любой страницы в данном экземпляре браузера, но я, очевидно, ошибаюсь.
Что мне нужно сделать для страницы C (моя страница выхода должна иметь доступ к переменной сеанса).
Любое руководство приветствуется!