小编Age*_*eax的帖子

ColdFusion中的查询优化

我在ColdFusion中创建了一个代码,用于从Users和UsersTransactions表中加载数据并将其显示在表中.但是,我的查询需要很长时间才能运行.

<!--- This return about 250 records --->
<cfquery name="getUsers" datasource="db">
    Select * From Users Where test = 5
</cfquery>

<!--- Loop to display the Users info --->
<cfloop query="getUsers">
    <cfset SpecialDebit = 0 />
    <cfset TotalDebit = 0 />
    <cfset SpecialCredit = 0 />
    <cfset TotalCredit = 0 />

    <!--- Loop to get Users Balance --->
    <cfquery name="getUsersTransactions" datasource="db">
        SELECT * FROM UsersTransactions , TransactionTypes, ChargeTypes 
        Where UsersTransactions.TransactionTypeID=TransactionTypes.TransactionTypeID 
        AND ChargeTypes.ChargeTypeID=UsersTransactions.ChargeTypeID  
        AND UsersTransactions.UserID=#getUsers.UserID#
    </cfquery>
    <cfloop query="getUsersTransactions">
        <cfif TransactionTypeID EQ "1"> …
Run Code Online (Sandbox Code Playgroud)

mysql sql coldfusion

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

如何在ColdFusion中检查请求的URL

我在onRequestStartApplication.cfc 的方法中编写了下面的代码.因此,只要在创建会话值之前发出请求,它就会始终重定向到login_action.cfm.

<cfif not IsDefined("session.active")>
   <cfinclude template="login_action.cfm">
</cfif>
Run Code Online (Sandbox Code Playgroud)

login_action.cfm没有适当身份验证的情况下阻止访问其他页面的代码:

<cfif NOT (IsDefined ("Form.username") AND IsDefined ("Form.password"))>
     <cfinclude template="login.cfm">
     <cfabort>
<cfelse>
Run Code Online (Sandbox Code Playgroud)

现在我创建了一个注册页面.此页面不需要身份验证.每个人都应该只需点击一下即可访问该页面,但现在无法登录.我可以通过某种方式检查方法的targtedPage参数来改变它onRequestStart吗?

有人能帮我吗?

coldfusion

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

如何在 CreateObject 参数中添加带点的路径

我正在尝试从我的组件导入路径,但一个文件夹有多个点,例如board.event.calendar. 由于这是此代码库中的常规结构,因此我无法更改文件夹名称。我尝试了多种方法来实现 CreatObject 参数中的正确路径,例如:

<cfset Event = CreateObject("Component", "path.to.'board.event.calendar'.Event") />
<cfset Event = CreateObject("Component", "path/to/'board.event.calendar'/Event") />
<cfset Event = CreateObject("Component", "path\to\'board.event.calendar'\Event") />
<cfset Event = CreateObject("Component", "path.to.board#chr(046)#event#chr(046)#calendar.Event") />
Run Code Online (Sandbox Code Playgroud)

但到目前为止还没有运气。我该如何处理?

coldfusion coldfusion-11

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

在ColdFusion中将变量传递给.NET dll

我在C#中构建了一个非常简单的.dll来从一个简单的ColdFusion页面调用.如果我传入文字值,一切正常,但一旦我尝试并传入一个变量(#rollYear#),我会收到一条消息,说明它无法再找到该方法.

coldfusion页面设置我的.dll像这样:

<cfobject type="dotnet" name="getParcelData" 
        class="soapDLL.GetSecuredParcelByAPN"    
        assembly="{path}\soapdll.dll">
Run Code Online (Sandbox Code Playgroud)

然后我这样称呼它:

<cfset output = getParcelData.getData("46546504654","cy","#rollYear#")>
Run Code Online (Sandbox Code Playgroud)

如果我使用上面的代码我得到一个错误,"找不到getData方法." .如果我#rollYear# 用一个值(例如2017)替换变量,那么它可以正常工作.在我的测试中,我在调用.dll之前#rollYear#通过CFSET函数设置了变量.

我整天都在为此而奋斗.有没有人有类似的经历?.dll非常简单.它只需要3个变量,并根据这些变量设置要调用的SOAP服务以撤回一些数据.由于太复杂而无法解释的原因,我无法从ColdFusion中进行SOAP调用,因此必须通过.net dll.

任何帮助将不胜感激,我没有留下太多的头发.:)

.net c# coldfusion coldfusion-8

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

返回 JSON 对象

有没有办法通过 ColdFusion 中的函数返回真实的 JSON 对象?我当前的解决方案是将查询转换为字符串,并在另一个 CF 文件中将其转换回 JSON 对象:

<cffunction name="addLicense" access="remote" returntype="string" returnFormat="JSON" httpmethod="POST">
  <cfquery datasource="hostmanager" name="createCustomer">
    SELECT * FROM license
  </cfquery>
  <cfreturn serializeJSON(createCustomer)>
</cffunction>
Run Code Online (Sandbox Code Playgroud)

rest coldfusion json cfml

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

如何在ColdFusion中访问包含特殊字符的变量名称

例如,我有以下代码:

<cfhttp url="FileURL" method="get" result="HTTPResult" timeout="5" />
Run Code Online (Sandbox Code Playgroud)

我想这样做:

<cfoutput>
    #HTTPResult.ResponseHeader.content-type#
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

但是,ColdFusion会将破折号-视为运算符,并尝试从"类型"中减去变量"HTTPResult.ResponseHeader.content",并且都不存在.有没有直接的方法来访问"内容类型"变量或我是否需要跳过箍来从标头变量中取出它?

variables coldfusion cfhttp

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

ColdFusion / Shibboleth - REMOTE_USER

我的 IIS 服务器上托管了一个 ColdFusion 应用程序。我将Shibboleth服务添加到我的 Web IIS,并设置了 CGI/过滤器以使用它。我将我的应用程序添加到testshib联盟并且能够成功登录。现在我正在尝试将会话变量放入 ColdFusion 代码中。

当我转储 CGI 范围时,我看到 shibboleth 会话保存在 下HTTP_COOKIE,但它REMOTE_USER是一个空字符串。这是因为REMOTE_USER不能根据docs 使用。相反,请求标头变量应该命名为HTTP_REMOTE_USER,但我在 CGI 转储中没有看到。有没有人这是为什么?我是否必须设置我的 shibboleth 属性映射或在 ColdFusion 中?

索引.cfm

CGI dUMP
<cfdump var = "#cgi#" > 
<br>HTTP_REMOTE_USER
<cfdump var="#CGI.HTTP_REMOTE_USER#">
<br>Get Request
<cfset x = GetHttpRequestData()> 
<cfdump var="x">
Run Code Online (Sandbox Code Playgroud)

转储结果

HTTP_COOKIE:_shibsession_64656487474733a2f2f6465736f6d2f73686962626f6c657468=_ecb60f7e4bf7616ab3522; 
Run Code Online (Sandbox Code Playgroud)

会议

Miscellaneous
Session Expiration (barring inactivity): 479 minute(s)
Client Address: 224.61.30.228
SSO Protocol: urn:oasis:names:tc:SAML:2.0:protocol
Identity Provider: https://idp.testshib.org/idp/shibboleth
Authentication Time: 2017-11-30T14:48:48.255Z
Authentication Context …
Run Code Online (Sandbox Code Playgroud)

iis coldfusion cgi saml shibboleth

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

如何计算列总和

我之前问过这样的问题,但没有得到任何好的答案,可能是因为代码太长或我的问题不清楚.这个时候我会尽我所能:)到目前为止,我已经编写了代码来从表中查找行和,这很好:

<cfloop list="#product_id_list#" index="product_index">
    <cfloop list="#month_list#" index="month_index">
        <cfoutput query="GET_SALES_TOTAL">
            <cfif AY eq month_index and product_id eq product_index>
                <cfloop list="#type_index#" index="tt_index">
                    <cfset 'alan_#tt_index#_#month_index#_#product_index#' = evaluate(tt_index)>
                </cfloop>
            </cfif>
        </cfoutput>
    </cfloop>
</cfloop>
<cfset 'total_#ii_index#_#p_index#'=evaluate('total_#ii_index#_#p_index#') + #evaluate('alan_#ii_index#_#ddd_other#_#p_index#')#>
Run Code Online (Sandbox Code Playgroud)

现在我想找一个列总和.列总和的代码有效,但不正确.它计算最后一个产品的总和:

<cfloop list="#product_id_list#" index="product_index">
    <cfloop list="#month_list#" index="month_index">
        <cfoutput query="GET_SALES_TOTAL">
            <cfif AY eq month_index and product_id eq product_index>
                <cfloop list="#type_index#" index="tt_index">
                    <cfset 'alan2_#tt_index#_#month_index#_#product_index#' = evaluate(tt_index)>
                </cfloop>
            </cfif>
        </cfoutput>
    </cfloop>
</cfloop>
<cfset 'total2_#ddd_other#_#p_index#'=evaluate('total2_#ddd_other#_#p_index#') + #evaluate('alan2_#ii_index#_#ddd_other#_#p_index#')#>
Run Code Online (Sandbox Code Playgroud)

行和的输出:

<cfloop list="#product_id_list#" index="p_index">
    <cfloop list="#type_index#" index="kk_ind">
        <td align="center">
          <font color="##FF0000">#TLFormat(evaluate('total_#kk_ind#_#p_index#'),0)#</font>
        </td> 
    </cfloop>
</cfloop> …
Run Code Online (Sandbox Code Playgroud)

coldfusion row sum cfml

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

在查询循环中生成总计

我有一个简单的查询,它通过ID来提取记录列表:

<cfquery name="resTotals" datasource="#datasource#">
   SELECT ticket_id
   FROM   closed_tickets
   WHERE  YEAR(closed_date) = '2017' 
   AND    ticket_type = 'residential' 
</cfquery>
Run Code Online (Sandbox Code Playgroud)

然后我尝试在另一个不同表的查询中循环访问这些ID,以便检查是否存在付款记录.目标是总计所有支付记录,以获得支付美元的总金额.

我有这个查询,但它抛出一个错误:不能将字符串[99.00]转换为类型[数组]的值

<cfloop query="resTotals">
     <cfquery name="resPaymentTotals" datasource="#datasource#">
        SELECT payment_amount
        FROM   payments
        WHERE  ticket_id = #resTotals.ticket_id#
     </cfquery>

 </cfloop>

 Amount of Sales: $ #ArraySum(resPaymentTotals.payment_amount)#
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我是在正确的轨道上吗?

coldfusion cfquery cfloop

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

writedump显示的不仅仅是结构上的循环

我的客户想要在每个合适的列中列出每个项目的列表,并列出其所属类别的名称.

<cfscript>
   arr = ArrayNew(1);
   arr[1] = '';
   arr[2] = 'category B';
   stc["Item One"] = arr;
   arr[1] = 'category A';
   arr[2] = '';
   stc["Item Two"] = arr;
   arr[1] = 'category A';
   arr[2] = 'category B';
   stc["Item Three"] = arr;
   writedump(stc);
   for (element in stc) {
     WriteOutput(element & '<br>');
     // The next line produces: 
     // Object of type class java.lang.String cannot be used as an array
     for (i=1; i<=ArrayLen(element); i+=1) {
     }
   }
</cfscript>
Run Code Online (Sandbox Code Playgroud)

问:如何访问每个元素内的数组?

coldfusion

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

使用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
查看次数

Coldfusion 计算天、小时、分钟中的秒数

我想将秒转换为天、小时和分钟 目前,它仅适用于小时和分钟,但不适用于天。你能支持我吗?告诉我我做错了什么:

<cfscript>
    seconds = '87400';
    midnight = CreateTime(0,0,0);
    time = DateAdd("s", seconds, variables.midnight);
    date= xxxxxxxxxxxxxxxxxxxxx???
</cfscript>

<cfoutput>
    #DateFormat(variables.date, 'd')#  not working 
    #TimeFormat(variables.time, 'HH:mm')#
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

对于该值,87400预期结果是

  • 1 天 0 小时 16 分钟

如果我花94152几秒钟,它将是:

  • 1天3小时22分钟

我唯一的问题是获得正确的日期...显示小时和分钟,但不是正确的日期

感谢大家的支持

coldfusion date coldfusion-9

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

无法匹配 php hash_hmac() 和 Coldfusion hmac() 的结果

我正在致力于加密 URL 并将工作脚本从 PHP 转换为 ColdFusion。我已经完成了 95% 的工作,但在尝试了 StackOverflow 上的许多解决方案后,我陷入了困境。我的结果仍然不匹配。我确认两个脚本上的saltBinkeyBin值是相同的。请看一看。

\n

PHP版本

\n
$saltBin = R\xef\xbf\xbdk\xef\xbf\xbd\xef\xbf\xbdE\xef\xbf\xbdx^ \xef\xbf\xbdO<\xef\xbf\xbd-\xef\xbf\xbd7J=S\xef\xbf\xbdz\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd;\n$keyBin = \xef\xbf\xbd;B\xef\xbf\xbd\xef\xbf\xbd|\xef\xbf\xbd \xef\xbf\xbd0U,\xef\xbf\xbd\xef\xbf\xbdh\xef\xbf\xbdNS+\xef\xbf\xbd\xef\xbf\xbd.\xef\xbf\xbd\xef\xbf\xbdG\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\n\nres = hash_hmac(\'sha256\', $saltBin, $keyBin);\nresult\n39ddcd6156a30fdcebc9fbf5dd59a0ef4f47e27841bbc12ce72b64a0a63c0324\n
Run Code Online (Sandbox Code Playgroud)\n

冷聚变版本

\n
<cfset res = hmac(saltBin,keyBin,"HMACSHA256")>\nresult\n30A658BEB3965C2D7D27A3F717FB6C13B05ED44E8B2A5A7FEBB9B57887CF57A0\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试过以下解决方案

\n

ColdFusion 相当于 PHP hash_hmac

\n

Coldfusion哈希以及hmacSHA256和SHA256之间的区别

\n

更新:

\n

下面是PHP版本的缩写版本

\n
$key = \'943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881\';\n$salt = \'520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5\';\n$keyBin = pack("H*" , $key);\n$saltBin = pack("H*" , $salt);\n$path = "/rs:fill:300:300:1/g:no/aHR0cDovL2ltZy5leGFtcGxlLmNvbS9wcmV0dHkvaW1hZ2UuanBn.png";\necho hash_hmac(\'sha256\', $saltBin.$path, $keyBin);\n
Run Code Online (Sandbox Code Playgroud)\n

结果:7062c2b5786c82de963767de4b0cdbc4e7ed7db2ce7466708bf8a28d8572888b

\n

冷聚变版本

\n
<cfset key = \'943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881\'>\n<cfset salt …
Run Code Online (Sandbox Code Playgroud)

php coldfusion hash sha256

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