ColdFusion — переменная DSNNAME не определена

Я поддерживаю сайт клиента — PHP — и сегодня, когда я перехожу с общего сервера на VPS … мне нужно настроить холодный синтез с нуля.

Обс .: Я никогда не использую ColdFusion в своей жизни

Но я получаю эту ошибку: Переменная DSNNAME не определена. И я не знаю, где я это настраиваю.

The web site you are accessing has experienced an unexpected error.
Please contact the website administrator.

The following information is meant for the website developer for debugging purposes.
Error Occurred While Processing Request
Variable DSNNAME is undefined.The error occurred in /home/project/public_html/projectname/integracao/register/members_body.cfm: line 303
Called from /home/project/public_html/projectname/integracao/register/frame.cfm: line 45
Called from /home/project/public_html/projectname/integracao/register/members.cfm: line 5
301 :         <td>
302 :           <div align="right">
303 :             <cfquery name="Qry_location" datasource="#dsnname#">
304 :               SELECT * FROM location
305 :               WHERE location_active = '1'
Resources:
Check the ColdFusion documentation to verify that you are using the correct syntax.
Search the Knowledge Base to find a solution to your problem.
Browser   Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36
Remote Address    189.15.195.13
Referrer    http://projectname/site/index.php?option=com_content&view=article&id=53&Itemid=12
Date/Time   27-Oct-14 07:17 PM
Stack Trace
at cfmembers_body2ecfm207100474.runPage(/home/project/public_html/projectname/integracao/register/members_body.cfm:303) at cfframe2ecfm1139106636.runPage(/home/project/public_html/projectname/integracao/register/frame.cfm:45) at cfmembers2ecfm1994964255.runPage(/home/project/public_html/projectname/integracao/register/members.cfm:5)

coldfusion.runtime.UndefinedVariableException: Variable DSNNAME is undefined.
at coldfusion.runtime.CfJspPage._get(CfJspPage.java:388)
at coldfusion.runtime.CfJspPage._get(CfJspPage.java:350)

Моя структура такова:

/home/project/public_html/projectname/application.cfm
/home/project/public_html/projectname/integracao/register/members_body.cfm

Мне нужен этот файл members.cfm, прочитайте файл Application.cfm. Как я могу это сделать?

0

Решение

<cfinclude template="/application.cfm"/>

Вы на * nix? Если так, имена файлов приложений чувствительны к регистру. Ваш файл называется Application.cfm? Обратите внимание, что первая буква заглавная «A». Если нет, это может объяснить, почему он не стреляет. CF ищет Application.cfmне application.cfm, Так что последнее будет проигнорировано.

1

Другие решения

Как вы сказали, вы должны настроить его с нуля. Если вы никогда не работали с CF раньше, несколько очков.

  1. Чтобы выполнить ваши запросы в коде CF, вам нужно связать их с базой данных. Это делается с помощью атрибута источника данных CFQUERY.

  2. Как правило, разработчики часто хранят имя источника данных в постоянной переменной и хранят его в Application.cfm или Application.cfc. В вашем случае имя этой постоянной переменной — DSNNAME.

  3. ColdFusion должен установить соединение с базой данных. Это можно сделать, установив соединение на экране CF Admin через ссылку, которую вы разместили.

Тем не менее, вот как вы это делаете: допустим, у вас есть база данных SQL Server, нажмите «Источники данных» и добавьте источник данных оттуда. Это довольно просто. Создав источник данных, назначьте этот источник данных DSNNAME переменная в Application.cfm или Application.cfc.

1

Каким-то образом файл конфигурации ColdFusion, необходимый вашему приложению, не читается должным образом. Возможно, он не был включен в предоставленные вам файлы .cfm, так как этот тип файлов часто зависит от сервера и включается в списки игнорирования управления исходным кодом.

Если файл существует, но не вызывается, вы можете найти его, выполнив поиск строк dsnname= dsnname = и т.п.

То, что вы вставили в свой вопрос, это консоль администратора CF, которая, вероятно, не поможет решить эту проблему. Однако вы должны будете убедиться, что база данных правильно настроена и имеет имя, соответствующее тому, что # dsnname # оценивает.

Лучше всего связаться с тем, кто написал код, и спросить, не был ли пропущен файл конфигурации / настроек.

0

Я решаю эту проблему, включая application.cfm на каждой странице.

Да, это безумие, но это единственное решение работает.

<cfinclude template="/application.cfm"/>

Но то, что я хотел, это каждый .cfm файл автоматически включают application.cfm, как и старый виртуальный хостинг.

0