标签: cfc

为什么我的coldfusion cfc不能访问application.cfm中包含的udf?

我有一个日志功能(不能使用cflog)包含在application.cfm中,我的.cfm页面可以访问它,但我使用的任何组件都给我一个"变量LOGGER未定义".错误.

application.cfm

<cfinclude template="logging.cfm">
Run Code Online (Sandbox Code Playgroud)

logging.cfm

<cffunction name="logger" >
 ...
</cffunction>
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么的任何想法?

coldfusion logging scope cfc application.cfm

1
推荐指数
1
解决办法
734
查看次数

$ .ajax ColdFusion cfc JSON Hello World

我尽可能地简化了这个例子.我有一个远程功能:

<cfcomponent output="false">
<cffunction name="Read" access="remote" output="false">
    <cfset var local = {}>

    <cfquery name="local.qry" datasource="myDatasource">
    SELECT PersonID,FirstName,LastName FROM Person
    </cfquery>
    <cfreturn local.qry>
</cffunction>
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)

使用jQuery $ .ajax方法,我想制作一个无序的每个人列表.

    <!DOCTYPE HTML>
    <html>
    <head>
    <script src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
    google.load("jquery", "1");
    </script>
    <script type="text/javascript">
    jQuery(function($){
    $.ajax({
            url: "Remote/Person.cfc?method=Read&ReturnFormat=json",
            success: function(data){
                var str = '<ul>';
// This is where I need help:
                for (var I=0; I<data.length; I++) {
                    str += '<li>' + I + data[I][1]+ '</li>'
                }
                str += '</ul>';
                $('body').html(str);
            },
            error: function(ErrorMsg){
               console.log("Error"); …
Run Code Online (Sandbox Code Playgroud)

coldfusion jquery json cfc

1
推荐指数
1
解决办法
1万
查看次数

来自JQuery和ColdFusion CFC的JSON错误无效,即使返回看似正确的JSON也是如此

我正在看Ben的例子@ http://www.bennadel.com/blog/1515-Ask-Ben-Building-An-AJAX-jQuery-And-ColdFusion-Powered-Application.htm并且想到一个超简单的例子我自己的.但似乎即使CFC返回格式正确的JSON,它总是在我的错误处理程序中出现错误:

Invalid JSON: {"ERRORS":"","SUCCESS":true,"DATA":"id DEX015-002-00, whs W1, qty 9"}  

这是ajax电话

$.ajax({
  type: 'GET',
  url: 'bridge.cfc',
  data: {
    method: 'UpdateQty',
    id: 'DEX015-002-00',
    whs: 'W1',
    qty: '9'
  },
  dataType:'json',
  success: function(res, status, req){ alert("Message from server:\n" + "res: " + res); },
  error: function(req, status, err){ "Error from server:\n" + "err: " + err); }
});  
Run Code Online (Sandbox Code Playgroud)

继承人CFC"bridge.cfc"

<cfcomponent>
<cffunction name="UpdateQty" access="remote" returntype="struct" returnformat="json"  output="false">
    <cfargument name="id" required="yes" type="string">
    <cfargument name="whs" required="yes" type="string">
    <cfargument name="qty" required="yes" type="string">
    <cfset res = structNew()> …
Run Code Online (Sandbox Code Playgroud)

ajax coldfusion jquery cfc

1
推荐指数
1
解决办法
1010
查看次数

Coldfusion,安全cfc来自SQL注入攻击

我有一堆外部表单,通过CFC将数据发布到数据库中.

我做的是

  1. 创建具有回发的表单
  2. 在帖子后面创建一个对象并将表单数据映射到对象(cfc)
  3. 使用CFparam对此类型和存储进行验证.范围
  4. 调用自定义方法来扫描字符串以使其免受攻击(似乎运行良好)
  5. 要插入的Cfquery.

我还能做什么或者应该做些什么来保护应用程序免受插入时的SQL攻击?我在select语句中使用CFqueryParam,我是否也应该在insert语句中使用?

简单CFC的示例:

<!--- Instance Veriables ---> 
<cfparam name="THIS.firstPrintedField" type="string" default="#NullString#" />
<cfparam name="THIS.SecondPrintedField" type="string" default="#NullString#" />
<cfparam name="THIS.participantFullName" type="string" default="#NullString#" />
<cfparam name="THIS.studentStatus" type="string" default="#NullString#" />
<cfparam name="THIS.dob" type="date" default="#NullDate#" />
<cfparam name="THIS.readAndUnderStood_Day" type="string" default="#NullString#" />
<cfparam name="THIS.readAndUnderStood_Month" type="string" default="#NullString#" />
<cfparam name="THIS.readAndUnderStood_Year" type="string" default="#NullString#" />
<cfparam name="THIS.agreeToTerms" type="boolean" default="#NullBool#" /> 
<cfparam name="THIS.guardianFirstName" type="string" default="#NullString#" />
<cfparam name="THIS.guardianMiddleName" type="string" default="#NullString#" />
<cfparam name="THIS.guardianLastName" type="string" default="#NullString#" />
<cfparam name="THIS.DateTimeSubmited" type="date" default="#NullDate#" />

<cffunction access="public" …
Run Code Online (Sandbox Code Playgroud)

coldfusion sql-injection cfc sql-server-2008

1
推荐指数
1
解决办法
264
查看次数

使用会话变量来"授权"Coldfusion中的页面引用或远程CFC调用?

我正在考虑尝试解决表单和远程CFC安全性的想法我想知道设置一个非常长/永久的会话持续时间和使用

if DateDiff("n", now(), session.lastactive) gt 15
Run Code Online (Sandbox Code Playgroud)

在onRequest中处理会话超时.然后我可以在引用/调用页面中设置session.referrer并在表单处理程序或远程cfc中测试它.我还没有读到它已经完成,所以有可能有很好的理由不这样做?

coldfusion cfc

1
推荐指数
1
解决办法
240
查看次数

如何在APPLICATION范围内的同一个CFC中调用第二个函数?

我正在使用ColdFusion 9.0.1.

首先让我说我可能没有问正确的问题.由于每个函数独立工作,只有当一个函数调用另一个函数时才会失败,我认为问题在于如何调用函数.

我正在创建一个包含结构的应用程序变量.该结构包含对象的引用,orders.cfc.

if (not isDefined("APPLICATION.AppInfo") or not isStruct(APPLICATION.AppInfo)) {
    APPLICATION.AppInfo = structNew();
    APPLICATION.AppInfo.objOrders = createObject("component", "globaladmin.orders");
}
Run Code Online (Sandbox Code Playgroud)

我能够成功访问orders.cfc中的方法,如下所示:

OrderItemList = APPLICATION.AppInfo.objOrders.orderItemList(URL.Customer);
Run Code Online (Sandbox Code Playgroud)

我在orders.cfc中有调用order.cfc中的其他方法的方法,有点像这样(为了简单而伪造):

<cffunction name="orderItemList">
    <cfscript>
          LOCAL.RandomNumber = getRandomNumber();
          return LOCAL.RandomNumber;
    </cfscript>
</cffunction>

<cffunction name="getRandomNumber">
    <cfscript>
        LOCAL.SomeNumber= randRange(0,10);
        return LOCAL.SomeNumber;
    </cfscript>
</cffunction>
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Entity has incorrect type for being called as a function. The symbol you provided getRandomNumber is not the name of a function.
Run Code Online (Sandbox Code Playgroud)

我想也许我不能在没有先创建对象的情况下在同一个CFC中引用一个函数,所以我这样做:

<cffunction name="orderItemList">
    <cfscript>
          LOCAL.RandomNumber = APPLICATION.AppInfo.objOrders.getRandomNumber();
          return LOCAL.RandomNumber;
    </cfscript>
</cffunction>
Run Code Online (Sandbox Code Playgroud)

然后,我会收到此错误:

Either there …
Run Code Online (Sandbox Code Playgroud)

coldfusion cfc coldfusion-9

1
推荐指数
1
解决办法
7317
查看次数

$ .ajax调用ColdFusion组件输出文本不是HTML

如果已经回答,我会提前道歉.

我的目标是创建一个分页方案,该方案将变量发送到ColdFusion函数中的查询,该函数抓取X个元素并在我的网页上显示这些记录而不刷新它.因此,为了测试抓取HTML内容并将其显示到屏幕而不刷新的基本功能,我尝试对ColdFusion组件执行简单的AJAX调用,让它返回带有HTML内容的变量,并显示格式化的HTML在我的网页上的div标签内.这是基于我在网络上看到的前一个例子,它使用了cfajaxproxy,虽然这可能是我的问题,但我很惊讶它根本就没有做到它应该做的事情.

我有一个名为testGeneration.cfm的文件,这里是代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>

    <!-- call the jQuery library -->
    <script src="jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">

        $(document).ready(function() {
            $("#loadLink").click(function(e) {
                e.preventDefault();
                $.ajax({
                    type: "GET",
                    url: "generateInfo.cfc?method=createHTML",
                    dataType: "html",
                    success: function(message) {
                        $("#mydiv").html(message);
                    }
                });
            });
        });
    </script>
</head>

<body>
    <a href="" id="loadLink">Load Query</a>
    <!-- empty div to load dynamcically generated table into -->
    <div id="mydiv"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

如您所见,它使用CreateHTML方法调用组件GenerateInfo.以下是generateInfo.cfc的代码:

<cfcomponent displayname="Generate HTML" output="false">

<cffunction name="createHTML" displayname="Create HTML" description="Creates HTML to output with jQuery." access="remote" …
Run Code Online (Sandbox Code Playgroud)

html ajax coldfusion jquery cfc

1
推荐指数
1
解决办法
4277
查看次数

<CFContent type = text/x-javascript>和Ajax

我在CFC文件上使用Ajax.我无法从我从Ajax调用的函数中获得结果.我设置了一个调试消息(Alert()),但是看不到它.有什么建议吗?

function getDelegateChartAcct(LocFund){
   alert("#Arguments.PIUniversalID#");
   alert($F("DelegateFund"));                                                                                                                                                                                                                    

  new Ajax.Request( "?method=displayDelegateChartAcct",
            {
              parameters : {
                            PIUniversalID: "#Arguments.PIUniversalID#",
                            PILocFund: $F("DelegateFund")                                                                                
                            },
                            method : "post"
                             }
               );
     }

     <cffunction name="displayDelegateChartAcct" access="remote" output="true" 
      returntype="void">
          <CFArgument name="PIUniversalID" type="string" required="true" />
          <CFArgument name="LocFund" required="true" type="String" />

      <CFSET var chartacctlist = runChartAcctDelegationQuery 
                  (#Arguments.PIUniversalID#, #Arguments.LocFund#)>

        <CFContent type="text/x-javascript">               
          alert(“Hi”);     
          //      delegateChartAcctList();
          //      $("DelegateChartAcct").
           //     <CFOutput query="chartacctlist">           
            //     $("DelegateChartAcct").insert( new Element(
                    "option", { value : "#JSStringFormat( chart_acct )#", selected : 
            //        "selected" } ).update( "#JSStringFormat( chart_acct )#" ) );                                                        
            //                            </CFOutput>


            </cffunction> …
Run Code Online (Sandbox Code Playgroud)

ajax coldfusion content-type cfc

1
推荐指数
1
解决办法
595
查看次数

application.cfc的问题显示数据源的消息"变量PRIMARYDATASOURCE未定义"

当我尝试在index.cfm中触发简单的select查询时,使用Application.cfc中定义的数据源会显示错误消息.任何人都可以帮助我正确的代码序列?

错误:

变量PRIMARYDATASOURCE未定义

的Application.cfc

<cfcomponent>

    <!--- Set up the application. --->
    <cfscript>
        this.name = ""; // app name from old cfapplication tag
        this.sessionManagement = "Yes";
        this.loginstorage="session";
        this.setClientCookies = "Yes";
        this.primarydatasource = "diet";
        application.PRIMARYDATASOURCE = "diet";
    </cfscript>

    <cfsetting requesttimeout="100000" />

    <cffunction name="onApplicationStart">
            ....

        <cfquery datasource="#application.PRIMARYDATASOURCE#" name="getCostDetails">
            select * from maimun.adCostDetails ORDER BY ID DESC
        </cfquery>
            ....
    </cffunction>

</cfcomponent>
Run Code Online (Sandbox Code Playgroud)

coldfusion cfc application.cfc

1
推荐指数
1
解决办法
117
查看次数

使用JQuery Ajax调用.cfm和.cfc之间的区别?

我正在研究新系统,并且有些东西与我以前看到的不同.基本上有一个JQuery ajax调用"POST"类型和url指向.cfm页面.该.cfm页面将返回html表格.

与首席开发人员交谈后,他提到这种方法更有效率.这种方式调用.cfm我们每次拨打电话时都不会创建新实例.另一种方法是,如果我们使用.cfc并调用一个函数,每次都会创建一个新实例.我不知道屏幕背后的一切和ColdFusion的深层次.

另外一件事他提到这种方式更好,因为我们不使用任何框架.我在过去的4年里一直在使用ColdFusion,而我过去看到的是component.cfc使用特定method名称调用JQuery Ajax .返回数据并动态构建表.我想知道是否有人知道更多关于这个以及为什么.cfm可能比打电话更好.cfc.

谢谢.

coldfusion frameworks web-services cfc coldfusion-11

1
推荐指数
1
解决办法
229
查看次数