coldfusion application.cfm и затронутые файлы
Если у меня есть сайт с защищенной серверной частью, и я хочу использовать файл application.cfm, как я могу определить, какие страницы используют файлы приложения a, а какие нет.
index.cfm
update/application.cfm
update/loginexpired.cfm
update/login.cfm
update/somesecurepage.cfm
update/someothersecurepage.cfm
я хочу updates/login.cfm
создать сеанс, если логин правильный. Если безопасные страницы update/somesecurepage.cfm
а также update/someothersecurepage.cfm
доступ без правильного входа в систему update/loginexpired.cfm
но я не хочу использовать другие страницы application.cfm
,
Это правдоподобно или я должен использовать cfinclude
вместо?
4 ответа
Всегда убедитесь, что вы называете свои файлы Application.cfm и Application.cfc с большой буквы "A". Таким образом, если вы перейдете из Windows в чувствительную к регистру файловую систему, у вас не будет проблемы, когда ColdFusion не сможет найти ваши файлы Application.cfm / cfc.
Что касается вашего вопроса, то с вашей текущей структурой все файлы в папке "update" будут использовать файл Application.cfm. Он будет выполнен перед любым другим кодом в этих файлах. Если вы хотите, чтобы только некоторые страницы перенаправлялись на страницу с loginexpired, то я бы обычно создавал подпапку, помещая файл Application.cfm в эту папку, которая включает файл Application.cfm из родительской папки:
<cfinclude template="../Application.cfm" />
, Затем в этом файле вы добавите проверку безопасности. в родительском файле Application.cfm вы бы включили<cfapplication />
тег. Если вы используете сеансы, обязательно включите управление сеансами в своем теге cfapplication. (<cfapplication name="myappname" sessionmanagement="true" />
)Вы действительно должны иметь файл Application.cfm или Applciation.cfc в корне вашего сайта. Если вы этого не сделаете, приложение будет работать без области приложения. ColdFusion имеет своего рода "безымянное" приложение, в котором оно будет работать без определенного имени приложения. Скорее всего, вы столкнетесь с нежелательными эффектами. Все приложения CF должны иметь именованное приложение, используя тег cfapplication или файл Application.cfc с установленным this.name.
Если вы пишете это как новое приложение, я бы предложил вам использовать Application.cfc вместо Application.cfm. Вы будете иметь доступ к жизненным циклам приложения, сеанса и запроса (onApplicationStart/End, onSessionStart/End, onRequestStart/End), а также к обработчикам событий onError и onMissingTemplate, что даст вам больший контроль над потоком вашего приложения.
Когда страница.cfm загружается, она сначала ищет Application.cfc (современный, рекомендуемый объект Application) в той же папке и запускает ее. Если этот файл отсутствует, он будет искать Application.cfm (старый способ создания приложения.)
Если ни одна из этих папок не существует, она будет искать дерево в следующей папке и проверять там наличие Application.cfc, а затем Application.cfm, он будет повторять это до тех пор, пока не найдет его или не доберется до корня сервера.
Следовательно, ВСЕ файлы, которые вы перечислили в папке "update", будут автоматически использовать application.cfm. Только index.cfm, указанный в корне, не будет. (потому что ни Application.cfc, ни Application.cfm не находятся в этой папке.)
Поэтому было бы лучше использовать Application.cfc в корне вашего сайта для всех, а затем поместить заблокированные страницы в подпапку с более строгим Application.cfc.
Я надеюсь, что это отвечает на ваш вопрос напрямую. В противном случае я согласен с тем, что сказал Шон.
Дополнительная информация о Application.cfc и Application.cfm доступна на сайте Adobe Coldfusion.
Я предлагаю вам сделать другой Appliction.cfm (pref Application.cfc) для публичной и безопасной зоны. Также определите другое имя для этих приложений.
Ой, орфографическая ошибка
Я предлагаю вам сделать другой Appliction.cfm (pref Application.cfc) для публичной и безопасной зоны. Также определите другое имя для этих приложений.