1

フォルダ /wwwRoot/beta/ に application.cfc があります。ルートには、一連のセッション変数を設定する application.cfm があります。beta フォルダ内のページの 1 つにアクセスしてすべてのセッション変数をダンプすると、application.cfm で定義されたものが表示されません。

「onSessionStart」内のすべてのコードを削除するために、application.cfc を変更しました。それは役に立ちませんでした。必要ないくつかのアプリケーション変数を使用して、新しい application.cfm を作成しました。それも役に立ちませんでした。

誰か提案はありますか?

   <cffunction name="onSessionStart" returnType="void" output="false" hint="Fires ONLY ONCE when session first created and not when session renewed/restarted.">
    <cfscript>
        session.startTime = Now();

    </cfscript>
    <cfreturn>
</cffunction>

既存のセッション変数をコピーする方法が必要になると思います。

上記のフォルダに簡単なテストページを作成しました。

<cfset session.mynum= 1111>
 <a href="beta/index.cfm">clicky</a>

リンクをクリックすると、セッション ダンプに myNum が含まれません。application.cfc の何かが問題を引き起こしています。

4

2 に答える 2

0

Application.cfc は、親フォルダーの Application.cfm の影響を受けません。Application.cfm を Application.cfc に置き換えてから、子フォルダーで親の Application.cfc を拡張する必要があります。これが、ColdFusion のアプリケーション フレームワークが機能する方法です。

とはいえ、Application.cfm を Application.cfc に置き換えることができない場合は、セッション変数の定義を別のファイルに分割してから、それを Application.cfm に cfinclude し、子ファイルの Application.cfc に含めることを繰り返すことができます。フォルダ。ただし、Application.cfm には、子フォルダーの Application.cfc にも含まれない他のものが含まれている可能性があるため、これは実際には優れたソリューションではありません。最善の解決策は、Application.cfm を完全に削除し、ルートの適切な Application.cfc に置き換えてから、必要に応じて子フォルダーからそれを拡張することです。

于 2012-11-09T19:11:27.510 に答える
0

問題を発見!application.cfc には、上部に次のものがあります。

 <cfscript>
   this.name = "myApp";
 </cfscipt>

アプリケーションの名前は、application.cfm のタグで使用されているものと同じでなければなりません。名前が変更されると、セッション変数を取得できました。

ありがとう

于 2012-11-09T19:35:57.210 に答える