我可以在同一台服务器上安装coldfusion 8和coldfusion 9并单独使用吗?
十分感谢.
我有一个新建的64位Windows Server 2008 R2盒子,我已经安装了64位Coldfusion 9 Standard.我已升级并将其修改为最新版本的CF. 我还在盒子上安装了64位Oracle 11g(11.1.0.7.0)客户端.我在Windows中使用64位ODBC数据源管理器创建了一个系统DSN,可以成功测试数据源的连接.
所有这些安装都顺利进行,但是,当我在Coldfusion Administrator中添加数据源时,我收到错误:
数据源的连接验证失败:myDatabaseName
java.sql.SQLException:[Macromedia] [SequeLink JDBC Driver] [ODBC Socket]内部错误:指定的DSN包含驱动程序和应用程序之间的体系结构不匹配根本原因是:java.sql.SQLException:[Macromedia] [SequeLink JDBC驱动程序] [ODBC套接字]内部错误:指定的DSN包含驱动程序和应用程序之间的体系结构不匹配
我很难理解这个架构不匹配的确切位置,因为该盒子完全是64位.我看到所有正在运行的进程,一些相关的CF进程在32位运行(Verity相关进程,SOLR和CFDotNetSVC).我不确定这些是否可能导致这个问题,但我无法解释这种不匹配是否来自其他方面.
有人有主意吗?
我有一个安全的事件类型,它将检查用户是否已登录,如果不是,则将它们重定向到登录页面:
<event-types>
<event-type name="securedPage">
<before>
<broadcasts>
<message name="CheckLogin"/>
</broadcasts>
</before>
<results>
<result name="NeedLogin" do="page.login" redirect="true"/>
</results>
</event-type>
</event-types>
Run Code Online (Sandbox Code Playgroud)
登录页面有一个链接到action.login事件处理程序的表单,如果登录成功,它将重定向到用户的主页,如果不是,则重新显示登录页面:
<event-handler name="action.login">
<broadcasts>
<message name="Login"/>
</broadcasts>
<results>
<result name="LoggedIn" do="page.user.home" redirect="true"/>
<result name="NotLoggedIn" do="page.login"/>
</results>
</event-handler>
Run Code Online (Sandbox Code Playgroud)
这段代码效果很好,但我现在遇到的问题是它总是会重定向到用户的主页,即使他们请求了另一个页面.由于表单发布到action.login事件,并且结果do是硬编码的page.user.home,我如何修改我的代码以跟踪用户最初请求的页面并将其重定向到那里?
我们正在使用Coldfusion 9.
是否有一种简单的方法可以知道在特定请求期间enablecfoutputonly是否已设置为true?
我正在编写一个脚本来将大型excel spreadhseet导入SQL Server 2008数据库.一切都很好,除了一个小细节:
如果工作表中的单元格有多个选项(如下拉<select>菜单),则只会抓取所选选项.我想抓住单元格所有可能的选项,而不仅仅是正在使用的选项(请参阅我的SQL查询了解原因)
我搜索了谷歌和S/O的答案,但我没有遇到这种特殊情况的解决方案.这是我正在使用的电子表格功能的链接.
我无法向您展示excel表,但可以安全地假设表格的遍历是正确的(我已对其进行了测试).
这是我的代码:
<cfspreadsheet action="read" src="spreadsheet.xlsx" name="sheet">
<cfoutput>
#sheet.rowcount-3#
<cfloop from="2" to="#sheet.rowcount-3#" index="row">
<cfquery datasource="Questions" result="rState">
INSERT INTO States
(
State,
StateAbbr
)
VALUES
(
<cfqueryparam cfsqltype="cf_sql_varchar" value="#SpreadsheetGetCellValue(sheet,row,1)#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#SpreadsheetGetCellValue(sheet,row,2)#">
)
</cfquery>
#SpreadsheetGetCellValue(sheet,row,1)#<br />
#SpreadsheetGetCellValue(sheet,row,2)#<br />
<cfloop from="3" to="15" index="col"> <!--- multi row selection (edit based on excel sheet col relationship) --->
<cfif SpreadsheetGetCellValue(sheet,row,col) EQ "">
<cfset SpreadsheetSetCellValue(sheet,"N/A",row,col) />
</cfif>
<cfquery datasource="Questions" result="rResponse">
IF NOT EXISTS
(
SELECT …Run Code Online (Sandbox Code Playgroud) 我在页面form.html上有以下表格,它提交给cfpage.cfm.所有名字,姓氏,地址和年龄均显示,但不是按照一致的顺序显示.有时它会显示姓氏,名字,地址和年龄.在另一个例子中,它可以显示地址,名字,年龄,然后是姓氏.
如何显示CFLoop项目 - 用户在文本框中输入的文本 - 按照表单中显示的顺序显示?我有多个通用表单,所以我必须在cfpage.cfm上使用一些通用代码来捕获提交的表单.
<form id="theform" name="theform" action="cfpage.cfm" method="post">
First Name
<input type="text" name="first name">
Last Name
<input type="text" name="last name">
Address
<input type="text" name="address">
Age
<input type="text" name="age">
</form>
Run Code Online (Sandbox Code Playgroud)
关于cfpage.cfm的代码
<cfloop collection="#form#" item="theField">
<cfif theField is not "fieldNames">
#theField# = #form[theField]#<br>
</cfif>
</cfloop>
Run Code Online (Sandbox Code Playgroud) 这可能属于serverfault,所以如果有,请移动.
我们刚刚发现您可以通过以下方式访问SOLR索引列表:http://example.com:8983/solr/然后允许您访问每个索引的SOLR管理员.这让我们感到......一件坏事.幸运的是,这被锁定为只从某个IP(我们的办公室IP通过防火墙)访问,但仍然意味着看门人可以访问我们的SOLR集合.不理想.
绕过它的一种方法是删除admin文件夹,但这仍然允许人们访问http://example.com:8983/solr/哪个不理想.
我已经阅读了有关安全性的SOLR 文档,但似乎无法完全锁定访问权限/solr/*.查看文档的错误部分可能非常好.
使用文档中的代码:
<security-constraint>
<web-resource-collection>
<web-resource-name>Solr authenticated application</web-resource-name>
<url-pattern>/core1/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>core1-role</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Test Realm</realm-name>
</login-config>
Run Code Online (Sandbox Code Playgroud)
并且替换<url-pattern>/core1/*</url-pattern>为实际的solr集合名称确实意味着在访问http://example.com:8983/solr/collection_name/它时会询问我的登录名和密码,但是,当我试图锁定/solr/*或甚至*没有运气时.
我正在使用CF9附带的内置solr
我最初发布这个作为早期关于ColdFusion 2016上的空CGI.REDIRECT_URL的问题的答案.在考虑之后,我认为它更好,因为技术上没有回答OP的问题.相反,我决定把它变成一个单独的问题,尽管它更像是一个评论而不是一个问题.虽然这在技术上可能无法满足最小,完整和可验证的例子的全部要求,而且人们可能会给我带来帮助,但我认为它还是值得的,希望能够更容易找到未来可能遇到此问题的CFers .因此,关于CGI结构/范围的这种特殊行为,防止它们撞到墙上.
话虽如此,CGI结构/范围与其他结构/范围有一些未记录的不一致行为.请注意,我个人对这一发现不予理睬,因为我在阅读Ben Nadel的博客文章时发生过这段时间.所以我在这里发布的所有信息都已在那里详细说明,但我想在这里写一篇很好的总结.
未记录的行为1 - 与其他结构不同,如果CGI结构键不存在,则在引用它时不会引发错误.
在OP的原始问题中,他想知道为什么cgi.REDIRECT_URL存在但是空洞.正如他最终发现的那样,它从未真正存在过.作为一个单独的示例,您可以执行此行代码而不会抛出错误.不是你期望的,是吧?
<cfoutout>#cgi.THIS_IS_A_FAKE_KEY#</cfoutout>
Run Code Online (Sandbox Code Playgroud)
那么什么是CFer呢?测试密钥存在.
<cfif structKeyExists( CGI, 'THIS_IS_A_FAKE_KEY' )>
THIS_IS_A_FAKE_KEY exists
<cfelse>
THIS_IS_A_FAKE_KEY doesn't exist
</cfif>
Run Code Online (Sandbox Code Playgroud)
未记录的行为2 - 与其他结构不同,如果转储CGI结构,它将不会显示所有键/值对,它只显示一组已定义的键.
在OP的情况下,他有一个自定义的Apache CGI变量cgi.REDIRECT_URL,在升级到CF2016之前在他的代码中使用,并且能够直接引用它.但是,我假设他是否抛弃了cgi结构,它不会出现在转储中.在Ben Nadel的案例中,他还有一个自定义cgi变量,称为cgi.document_root从负载均衡器传递并且能够直接引用它,但是在转储cgi内容时他也无法看到密钥.
那么什么是CFer呢?理解这一点并将其存储在您的脑海中,这样当您转储cgi内容并且键/值对不存在时,您将不会被咬.除此之外,其他并不多.
coldfusion coldfusion-9 coldfusion-10 coldfusion-11 coldfusion-2016
当我从cfc的远程方法返回一个字符串时.返回的字符串包含在一个奇怪的wddxpacket中:

我试图像这样关闭调试输出:
<cfsetting showDebugOutput="no">
Run Code Online (Sandbox Code Playgroud)
但它没有用.
我正在尝试用下划线替换字符串中的空格,以便使用RegEx创建slug.当有一个空间时,它的工作正常.但是当有两个连续的空格或一个空格后跟一个下划线,反之亦然(' _' OR '_ ')将其替换为__.我怎么能克服这个?那就是我想要一个下划线而不是双倍或三倍.任何帮助,将不胜感激.
我的替换代码与此类似.
rereplace(lCase('this is a sample _string'),'[ ]','_','all')
Run Code Online (Sandbox Code Playgroud) coldfusion-9 ×10
coldfusion ×9
coldfusion-8 ×2
cfc ×1
excel ×1
model-glue ×1
oracle11g ×1
redirect ×1
regex ×1
security ×1
solr ×1
sql ×1
string ×1
wddx ×1