2

ログファイルを作成したい。試しましたが、エラーが表示されます。誰でも助けることができますか?ここに完全なコードを示します。

http://pastebin.com/SxAMCUnv

この行を参照してください。何が起こったのかわかりません。エラーを出力できます:

<cffile action="WRITE" file="#expandpath('API.log')#" 
    output="#filecontent#" addnewline="Yes" fixnewline="No"

編集:試してみましたが、エラーが表示されました:

213 行目の 110 列目に無効な CFML 構造が見つかりました。ColdFusion は次のテキストを参照していました。

''

CFML コンパイラは以下を処理していました。

A cffile tag beginning on line 213, column 2.

主なエラーは次の行にあります。

<cffile action="WRITE" file="#expandpath('Info.log')#" 
   output="#filecontent#" addnewline="Yes" fixnewline="No" 

何が起こっているのか教えてください。

4

2 に答える 2

3

いくつかのこと。

  1. エラーが発生した場合: エラーが発生したと単純に言うのではなく、エラーの内容をお知らせください。
  2. コードを投稿するときは、状況に関連するコードのみを投稿し、すべてのコードを投稿しないでください。200 行近くのコードを渡されましたが、そのほとんどすべてが関連していません。
  3. ここで行った独自のトラブルシューティングについては何も示していません。基本的には、単にあなたのために仕事をするように私たちに頼んでいるようなものです.

あなたがあなたの質問を明確にしたら、私は反対票を投じます。

コードを表面的に見ると、 variable を書き出そうとしているように見えますfileContentが、実際にその変数を設定することは決してありません。エラーが表示されなければ、それが問題なのか、それとも変数が含まれていないコードで作成されているのかを知る方法はありません

もう 1 つの考慮事項は、ここで車輪を少し再発明していることです。ColdFusion には、ログ ファイルに書き込むための<cflog>タグまたはステートメントが組み込まれています。writeLog()

=====

UPDATE(質問の更新に基づく)これはコンパイルエラーです。エラーが発生している行は、コード(@ pastebin)で指定した行ではありません。これは少し奇妙です。213行目がその<cffile>行だと確認できますか? そして、その行全体を再現できますか (引用したスニペットは不完全でした)。しかし、基本的にエラー メッセージは何が問題なのかを示しています。コードに構文エラーがあります。エラーメッセージが示す特定のステートメント (行と列) にある可能性がありますが、コードによっては CF コンパイラが混乱し、前の行の構文エラーが実際よりもファイルのさらに下にあると報告される場合があります。は。しかし、まず、コードの最初の部分だけでなく、コード行全体を投稿してください。

于 2012-12-19T07:14:57.800 に答える
1

コメント tl;dr バージョン - この回答は機能しましたが、質問者は新しいエラーについて質問し始め、新しい質問を作成するように促されました。

回答: あなたが投稿したリンクにこの行がありません (私は を検索しましたapi.log)。 Invalid CFML construct通常、構文エラーがあることを意味します。通常、閉じ引用符、2 番目のポンドを忘れているか、タグ (より大きい) を閉じています。以下の提案が機能しない場合は、cffile を含む行の上または下で、閉じているペアの欠落部分を探します。

あなたが投稿したコード:

<cffile action="WRITE" file="#expandpath('API.log')#" output="#filecontent#" addnewline="Yes" fixnewline="No"

...タグを閉じる以上の閉じがありません。それが実際のコードである場合、それが問題であると思われます。

<cffile ...  >
            ^^^ this is missing right here

Adam の提案を受け入れずに cflog を使用しない場合 (使用する必要があります)、おそらく必要action="append"になるか、fileContent の内容でファイルを上書きし続けることになります。

==編集==

補足として、これで問題は解決しませんが、特にユーザーが入力したデータを使用する場合は、cfqueryparam を使用する必要があります。

例えば:

Select * 
FROM   Purchasers 
WHERE  PurchaserID = #PurchaserID#

する必要があります

Select * 
FROM   Purchasers 
WHERE  PurchaserID = <cfqueryparam cfsqltype="cf_sql_integer" value="#PurchaserID#">
于 2012-12-19T10:57:48.737 に答える