我在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) 我在onRequestStart
Application.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
吗?
有人能帮我吗?
我正在尝试从我的组件导入路径,但一个文件夹有多个点,例如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)
但到目前为止还没有运气。我该如何处理?
我在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.
任何帮助将不胜感激,我没有留下太多的头发.:)
有没有办法通过 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) 例如,我有以下代码:
<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",并且都不存在.有没有直接的方法来访问"内容类型"变量或我是否需要跳过箍来从标头变量中取出它?
我的 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) 我之前问过这样的问题,但没有得到任何好的答案,可能是因为代码太长或我的问题不清楚.这个时候我会尽我所能:)到目前为止,我已经编写了代码来从表中查找行和,这很好:
<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) 我有一个简单的查询,它通过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)
我究竟做错了什么?我是在正确的轨道上吗?
我的客户想要在每个合适的列中列出每个项目的列表,并列出其所属类别的名称.
<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)
问:如何访问每个元素内的数组?
我正在研究新系统,并且有些东西与我以前看到的不同.基本上有一个JQuery ajax调用"POST"类型和url指向.cfm
页面.该.cfm
页面将返回html
表格.
与首席开发人员交谈后,他提到这种方法更有效率.这种方式调用.cfm
我们每次拨打电话时都不会创建新实例.另一种方法是,如果我们使用.cfc并调用一个函数,每次都会创建一个新实例.我不知道屏幕背后的一切和ColdFusion的深层次.
另外一件事他提到这种方式更好,因为我们不使用任何框架.我在过去的4年里一直在使用ColdFusion,而我过去看到的是component.cfc
使用特定method
名称调用JQuery Ajax .返回数据并动态构建表.我想知道是否有人知道更多关于这个以及为什么.cfm
可能比打电话更好.cfc
.
谢谢.
我想将秒转换为天、小时和分钟 目前,它仅适用于小时和分钟,但不适用于天。你能支持我吗?告诉我我做错了什么:
<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
预期结果是
如果我花94152
几秒钟,它将是:
我唯一的问题是获得正确的日期...显示小时和分钟,但不是正确的日期
感谢大家的支持
我正在致力于加密 URL 并将工作脚本从 PHP 转换为 ColdFusion。我已经完成了 95% 的工作,但在尝试了 StackOverflow 上的许多解决方案后,我陷入了困境。我的结果仍然不匹配。我确认两个脚本上的saltBin
和keyBin
值是相同的。请看一看。
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\nColdfusion哈希以及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
<cfset key = \'943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881\'>\n<cfset salt …
Run Code Online (Sandbox Code Playgroud) coldfusion ×13
cfml ×2
.net ×1
c# ×1
cfc ×1
cfhttp ×1
cfloop ×1
cfquery ×1
cgi ×1
coldfusion-8 ×1
coldfusion-9 ×1
date ×1
frameworks ×1
hash ×1
iis ×1
json ×1
mysql ×1
php ×1
rest ×1
row ×1
saml ×1
sha256 ×1
shibboleth ×1
sql ×1
sum ×1
variables ×1
web-services ×1