問題タブ [application.cfc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
coldfusion - CF9でのOnRequestEndの動作への変更(ColdFusion 9のバグ-OnRequestEndでリクエスト変数を参照できない)
これは奇妙なものです。グーグルでこれに関する情報を見つけることができなかったので、これを見たことがある人はいないでしょうか。
リクエストスコープにCFCがあり、onRequestEndイベントで、そのCFCをリクエストスコープから取得し、リクエストの終わりを処理します。問題は、onRequestEndイベントで変数を参照できないことです。これは、スコープで定義されていないことを示すエラーが生成されるためです...しかし、ここで変数が非常に奇妙になり、これがバグであることがわかります(これは単なるバグではありません)疑惑)...変数をダンプすると、cfdumpタグはCFCとそのすべてのものを正常に表示し、同じ「スコープ内で未定義」エラーを生成します。これがスクリーンキャプチャです。
だから...これを見た人はいますか?なぜなら私は完全に困惑しているからです。9.0.1アップデータと両方の累積ホットフィックスをすでにインストールしています。
psええ、OnRequestEnd.cfmと書かれていることは知っていますが、これは実際にはApplication.cfconRequestEndメソッド内にあります。これは元々CF5にまでさかのぼるフレームワークからのレガシーです。; P
編集:わかりました、それはもっと奇妙になりました...私はevaluate()を使用してそれをローカル変数に設定しようとしました、それは明らかに機能します、それから私はローカル変数をダンプするからです。エラーが発生した行の後の2行目にあるにもかかわらず、ダンプは引き続き機能しますか?!!
編集2:編集:エラーが発生したファイルを含むApplication.cfcのコードは次のとおりです。
メソッドとインクルードファイルの組み合わせと関係があるようです。
onRequestStartのメソッドを次のように実行すると、まだ失敗します。
ただし、このようにonRequestStartにファイルを含めると正常に機能します。
でも!単純なテストケースを作成できないため、これには明らかに多くのことがあります。非常に単純なapplication.cfcを含む新しいプロジェクトを作成し、これらすべての詳細を複製すると、正常に機能します。したがって、フレームワークには、メソッド名とファイル名だけでなく、それに貢献している何かがあります。
また、ファイル名を次のように変更しても同じように失敗するため、ファイル名は実際には寄与していないようです。
編集3:さて、それはファイルとは何の関係もありません...まあ、それはそうですが、ファイル名とは関係ありません...onRequestEnd.cfmの下部にこのコードがあります
これらのStructClearステートメントをコメントアウトすると、エラーが消え、OnRequestEnd.cfmが2回実行されていたことがわかります...そしてCF9がCFABORTタグの動作を変更し、onRequestEndイベントを実行することを意味すると思いますタグが使用されている場合...以前のバージョンのcfにはありませんでした...
これに関するドキュメントは見つかりませんでしたが、CFLOCATIONタグを使用したこの動作について、Ben Nadelからこのブログを見つけたので、より一般的にはonRequestEndイベントに関するもののようです。CF9では、ページの実行がどのように終了しても、最後にonRequestEndイベントが実行されるようです...これは以前のすべてのバージョンからの変更であるため、実際にこれを発生させるために作成したコードをいじくりまわします以前のバージョンでは。onRequestEndを実行してからページを早期に中止していたため、CFはonRequestEndを実行し、中止してから、中止のためにonRequestEndを再度実行します。
幸いなことに、テンプレートの上部にあるこのかなり単純なコードで問題が解決したようです。
session - CookieなしでColdfusionセッションを使用する
良い一日、
私たちはColdfusion8にAPIを実装しようとしています。これにより、Cookieは使用されません。代わりに、リクエストごとにGETまたはPOSTによってcfid、cftoken、およびjsessionidを渡します。
mach-iiとそのSessionFacadeを使用しています。これについてさらに情報が必要かどうかはわかりません。もしそうなら、言及してください。
Coldfusion Administratorでは、クライアント変数が「レジストリ」に設定され、「J2EEセッション変数の使用、アプリケーション変数の有効化、セッション変数の有効化」ごとにメモリ変数がチェックされます。
私のApplication.cfc疑似コンストラクターは次のようになります
onSessionStartまたはonSessionEndには何もありません。
セッションを検証するために、プラグインを使用しており、そのpreProcessメソッドには次のものがあります。
私が最初に理解していないのは、J2EEセッションを使用するときにcfidとcftokenを送信する必要がある状況はあるかということだと思います。または、jsessionidは完全に完全にそれらの機能を置き換えますか?
次に、この1つのアプリケーション(サーバー全体ではなく)がCookieを送信しないようにします。Application.cfcで、Cookieを無効に設定していますが、それでもjsessionidを含むCookieを送信しようとします。
これは私が奇妙な副作用だと思うものを持っています:
Cookieが無効になっているFirefoxでは、URLに入力されたcfid、cftoken、およびjsessionidがセッション状態を正しく維持します。
ただし、Cookieを受け入れるiPhoneアプリでも使用しました。Cookieをローカルストレージに保存して修正する前に、アプリを閉じて再度開くと、Cookieが失われました。まだ有効なcfid、cftoken、およびjsessionidがURLで送信されていたにもかかわらず、「ログインしていません」というエラーが発生しました。
だから私は3つの質問があります:
まず、J2EEセッションを使用する場合、cfidとcftokenを保存して再送信する必要がある状況はありますか?
次に、Cookieを使用せずにjsessionidを手動で保存するために使用できるアプリケーションレベルの設定はありますか?
第三に、どの段階でjsessionidが取得され、セッション変数がメモリから入力されますか?これは私がデバッグまたは問い合わせることができるものですか、それで私は何かを言うことができます
templates - application.cfcから挿入されたColdfusionテンプレートの「ターゲット」を指定できますか?
ただ疑問に思っています(Coldfusion初心者)。私はこのページにいて、Coldfusionでユーザーのログイン/ログアウトを設定する方法の例を示しています。
簡単な質問:
ユーザーがログインしていない場合、application.cfcはログインフォームを挿入します。
質問:このログインフォームが終了するターゲット
を設定する方法はありますか?それが想定されている場所に表示されるようにするためのいくつかのターゲット/セレクター/何か?
情報をありがとう!
variables - Coldfusion8 の application.cfc のどこでアプリケーション変数とセッション変数を定義すればよいですか?
最初の application.cfc ファイルをセットアップしようとしています。
次のように「イベントベース」で変数を呼び出そうとしました:
私はこれがうまくいくと思っていましたが、次のようにすべてを事前に宣言する必要があるため、そうではありません。
私の質問:
変数の宣言に CF イベントを使用する必要があるのはなぜですか。とにかくイベントの外で宣言する必要がある場合は、コード行を節約して、初期値を宣言して割り当てることができますか? 私はそれを間違っていますか、それとも宣言するためのイベントではありませんか?
ご意見ありがとうございます。
forms - Coldfusionで特定のタイプ(ユーザーインタラクションなど)のフォームのグローバルフォームハンドラーを設定するにはどうすればよいですか?
継承したColdfusion8サイトでフォーム処理を構造化するための最良の方法を探しています。
「ユーザーインタラクション」(登録/ログイン/ログアウト/更新)など、特定のインタラクションに関連するフォームがいくつかあります。この例に沿ってグローバルフォーム/検証ハンドラーを設定しましたが、これは問題なく機能します。
セットアップを少し変更しました。Coldfusionを使用して最初の数か月であるため、次の処理方法が理にかなっているかどうかを知りたいと思います。
私のapplication.cfcでは、次のようにすべての「ユーザーインタラクションフォーム」のセッションデフォルトを宣言しています。
すべてのフォームフィールドにデフォルトを設定するというアイデアだったので、ユーザーが単にログインするか登録するかに関係なく、常に「完全なフォーム」を送信します。
次に、user-form-handler.cfc内で、検証基準を宣言しています。
ユーザー関連のフォームを送信するときは常に、user-form-handler.cfc内のPROCESS関数に送信します。この関数は、 SETFORMDATA内に設定されたセッションのデフォルト値を上書きし、データベースにコミットして応答オブジェクトを返す前にフォームフィールドを検証します。 。
私の質問:これは機能しますが、Application.cfc内のonSessionstart
内
のすべてのフォーム入力のデフォルト値を宣言することについてはよくわかりません。この中央ハンドラーを介してすべてのユーザー関連のフォーム送信を実行したい場合、これを行うためのより良い方法はありますか?
coldfusion - ColdFusion 10でsameformfieldsasarrayを無効にするにはどうすればよいですか?
sameformfieldsasarray
ファイルがある場合、どうすれば無効にできApplication.cfm
ますか?
レガシーアプリケーションをColdFusion9からColdFusion10に移植しています。このサイトは古い学校のApplication.cfm
ファイルを使用しています。
this.sameformfieldsasarray
10は、フォーム変数が複数ある場合にフォーム変数を配列に結合する有効にできる新しい設定()を追加したことがわかります。これはデフォルトでオフになっているはずですが、残念ながら、セットアップしたばかりの新規インストールでは「オン」になっています。
の代わりにを使用しthis.sameformfieldsasarray
ているため、falseを設定できません。また、管理者やドキュメントに何も見つかりません。Application.cfm
Application.cfc
コードは、Ubuntu12.04x64上のCF10の新規インストールから実行されます。@Adamは、サンプルコードがWindows Server2003x64で機能することを確認しました。
コード:https ://gist.github.com/2931343
サンプル送信のスクリーンショット:http ://imgur.com/Q9DAi
サーバースコープのスクリーンショット:http ://imgur.com/9iwWL
提出されたバグレポート:https ://bugbase.adobe.com/index.cfm?event = bug&id = 3214734
coldfusion - すべてのフォルダーでApplication.cfcを使用せずに、ColdFusionでフォルダーを保護する方法はありますか?
フォルダを保護する方法を理解する唯一の方法は、サブフォルダを含むすべてのシングルに基本的なApplication.cfcを含めることです。
ファイル/test/thisfile.cfm
が安全で、ログインページにログインしていないユーザーを送信する場合、ただし、フォルダーに/test/test2/
はApplication.cfcも含まれている必要があります。そうでない場合、ユーザーはtest/test2/thatfile.cfm
問題なく直接アクセスできます。
これよりも良い方法が必要だと私は知っています。それが何であるかはわかりません。Googleのすべてが「ログインウィザード」を使用するか、フレームワークをインストールするように指示しています。どちらも私にとっての選択肢ではありません。
別の考慮事項として、これは残念ながらMX7で機能する必要があります。CF 9にもっと良いオプションがあれば、喜んで聞いてみますが、優先順位はMX7です。
coldfusion - ColdFusion 10 application.cfc エラー: アクティブなセッション数のカウント
adobe coldfusion 10 ドキュメント、Defining the application and its event handlers in Application.cfcには、以下の関数を含むサンプル Application.cfc があります。コードを見た後、次のコードにタイプミス/バグがあるかどうか疑問に思っています:
それは次のとおりです。
- (A) cflock ... scope="SESSION"
または - (B) cflock ... scope="APPLICATION"
?
(A)だったら困ります。誰かが理由を説明できますか?
coldfusion - coldfusion-10 エラー: init_datetype 関数から返された値が pagedatetype_cfc 型ではありません
coldfusion 10 で、 「Application.cfc からイベント ハンドラ メソッドを呼び出しているときに例外が発生しました。メソッド名は onRequestStart です。」というエラーが表示されます。
原因: 詳細:「コンポーネント名が戻り型として指定されている場合、コンポーネントの定義ファイルが見つからないか、アクセスできない可能性があります。」
根本原因: メッセージ:「init_pagedatetype_ver04 関数から返された値は、タイプ gg2_pagedatetype_cfc_ver04 ではありません。」
*私が間違っていることはありますか? 関連ファイルと関連コードは次のとおりです*
ファイル #1: "\application.cfc"
ファイル #1: "\inc_CFC\gg2_pagedatatype_cfc_ver04.cfc"