我正在使用ColdFusion 9和jQuery.
我是通过CFAJAXPROXY使用ColdFusion CFC的新手.我很好奇我的数据库是否存在风险以及我如何轻松修补安全漏洞.
我把它放在页面顶部:
<cfajaxproxy cfc="brands" jsclassname="jsApp">
Run Code Online (Sandbox Code Playgroud)
这是一些登录后使用的CFC:
<!--- ADD BRAND --->
<cffunction name="addBrand" access="remote">
<cfargument name="SiteID" required="true">
<cfargument name="Brand" required="true">
<cfscript>
LOCAL.SiteID = ARGUMENTS.SiteID;
LOCAL.Brand = trim(left(ARGUMENTS.Brand, 50));
</cfscript>
<cfquery name="GetBrands">
INSERT INTO Brands(SiteID, Brand)
VALUES (<cfqueryparam cfsqltype="cf_sql_integer" value="#LOCAL.SiteID#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#LOCAL.Brand#">)
</cfquery>
<cfreturn true>
</cffunction>
Run Code Online (Sandbox Code Playgroud)
这是将数据发布到CFC的jQuery
$("#AddBrand").click(function() {
NewBrand = $("#NewBrand").attr("value");
var jro = new jsApp();
jro.addBrand(NewBrand);
});
Run Code Online (Sandbox Code Playgroud)
那么,这里有一个很大的安全漏洞吗?access ="remote"是否只能用于检索数据?
我正在使用ColdFusion 9.0.1
我正在接管一个网站,我之前的人创建了大约100个变量并将它们放入APPLICATION范围.我相信他的100个变量不断被每个页面加载覆盖.
基本上,他在Application.cfc中有这个:
APPLICTION.VariableOne = "SomeStringOne";
APPLICTION.VariableTwo = "SomeStringTwo";
APPLICTION.VariableThree = "SomeStringThree";
Run Code Online (Sandbox Code Playgroud)
我的计划是保持简单,而且非常易读,可以测试应用程序范围内的特定结构.如果不存在,请创建结构和变量:
if (not isDefined("APPLICTION.AppInfo") or not isStruct(APPLICTION.AppInfo)) {
APPLICTION.AppInfo = structNew();
APPLICTION.AppInfo.VariableOne = "SomeStringOne";
APPLICTION.AppInfo.VariableTwo = "SomeStringTwo";
APPLICTION.AppInfo.VariableThree = "SomeStringThree";
}
Run Code Online (Sandbox Code Playgroud)
当然,一旦站点生效并且我们完成了创建所有应用程序变量,我将把它移到onApplicationStart()方法中.
我想要的解决方案必须更多地关注"可读性"而不是"效率".一些非CFers,但非常有经验的编码人员将使用它,并需要快速"获取".
我的计划是否有任何漏洞或效率太低?
是否有更易读的方法来创建和管理应用程序变量?
我正在创建一个新的SQL Server 2008数据库.我有两个相关的表.
第一个表看起来像这样:
BRANDS // table name
BrandID // pk
BrandName // varchar
Run Code Online (Sandbox Code Playgroud)
第二个表看起来像这样:
MODELS // table name
ModelID // pk
ModelDescription // varchar
Run Code Online (Sandbox Code Playgroud)
每个品牌至少有一个型号,每个型号只属于一个品牌.
问题是,我应该像这样创建一个联结表
BRANDS_MODELS // table name
RecordID // pk
BrandID
ModelID
Run Code Online (Sandbox Code Playgroud)
或者我应该修改MODELS表以包含像这样的BrandID
MODELS // table name
BrandID //
ModelID // pk
ModelDescription // varchar
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在使用SQL Server 2008.
我在我的数据库中有一些日期,我"想"我想分解成更小的部分.日期是生日和死亡日.我想通过查询10月或5月12日或1945年出生的人来输出它们.
有人告诉我,这样做的一种典型方法是将日期分成小块并将每一段日期放入自己的列中,如下所示:
2001-03-12 00:00:00 // EventDate column
Run Code Online (Sandbox Code Playgroud)
添加以下列:
2001 // EventYear column
03 // EventMonth column
12 // EventDay column
Run Code Online (Sandbox Code Playgroud)
首先,这是一个很好的方法吗?如果是这样,第二,我可以以某种方式让SQL Server自动打破日期部分并将其放入自己的列中吗?
我很感激想法和解决方案.
在我被要求在冷融应用程序中查看一些奇怪的间歇性错误之前没有使用过coldfusion.
在阅读了范围后,我认为问题是因为我的cfc函数中没有变量使用var关键字,并且在各种函数中使用相同的变量名.因此,据我所知,变量在页面级别作用域,调用这些函数的不同线程将覆盖导致"奇怪"问题的变量.
我的问题是这样做的正确方法是什么?
<cfset var listCount = 0>
<cfquery name="qGetElementsByType" dbtype="query" maxrows="#arguments.num_to_return#">
SELECT elementId,
title, PIhtml, Rerhtml,
text, url, image, Rank, isPoll, pollId, subjectId
FROM arguments.element_query
WHERE <cfloop list="#arguments.element_type_id#" index="lcv">
<cfif listCount GT 0>
OR
</cfif>
subjectid = #lcv#
<cfset listCount = listCount + 1>
</cfloop>
</cfquery>
Run Code Online (Sandbox Code Playgroud)
是否var需要每个listCount变量设置,或者只是在最初宣布的时间将被添加?
这个问题在一年多前就得到了回答.从那以后,ColdFusion 10发布了,但文档很差.这个问题严格关于ColdFusion 10和CFSCRIPT.
我有兴趣在CFSCRIPT中编写此代码,绝对不使用CFHTMLHEAD标记.
<cffunction name="HTMLHead" output="false" returnType="void">
<cfargument name="text" type="string" required="yes">
<cfhtmlhead text="#text#">
</cffunction>
Run Code Online (Sandbox Code Playgroud)
这是我认为应该如何运作的方式
// CREATE PAGE TITLE
function createPageTitle(Content) {
LOCAL.Content = ARGUMENTS.Content;
LOCAL.Content = "<title>#LOCAL.Content#</title>";
LOCAL.Content = htmlhead(LOCAL.Content);
}
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于如何完成的文档,但它似乎是CFSCRIPT中首先包含的内容之一.
我正在使用ColdFusion 8和SQL Server 2008 R2.
我正在尝试查询一列值以获取值在一定范围内的行.该列应该是数字,但事实并非如此.它被设置为varchar(由其他人).有超过100,000行的数据.这是数据的FAKE样本:
ID COLUMN
1 1
2 1.2
3 0.9
4 5
5 -6
Run Code Online (Sandbox Code Playgroud)
我的查询如下所示:
select column
from table
where column between 1 and 2
Run Code Online (Sandbox Code Playgroud)
此查询将不会运行,因为where语句的列是varchar,并且我得到转换错误,所以我必须将where语句更改为:
where column between '1' and '2'
Run Code Online (Sandbox Code Playgroud)
现在,当我运行这样的查询时,它会运行,但我没有得到结果.但我知道我应该看到结果,因为我知道列字段中的许多值都在我查询的范围内.
我想知道我是否看到没有结果,因为该字段是varchar而不是数字.可能会弄乱我的结果吗?
此外,我们正在搜索100,000多条记录,使用varchar字段而不是数字字段会有很大的性能影响吗?
我正在使用jQuery 1.8.
我有一系列复选框,用户可以检查这些复选框以获取有关特定产品的信息.检查框时,会调用一个函数并将产品信息加载到div中.目前,每次点击后该功能立即触发.因此,如果访问者检查所有五个框,则将进行五次ajax调用.
我想要的是,一旦访问者停止点击,该功能将在一段时间后触发.该功能只能触发一次.延迟的目的是限制呼叫次数并创建更流畅的用户体验.
这是我的HTML:
<input type='checkbox' class='SomeClass' data=prodid='1'> 1
<input type='checkbox' class='SomeClass' data=prodid='2'> 2
<input type='checkbox' class='SomeClass' data=prodid='3'> 3
<input type='checkbox' class='SomeClass' data=prodid='4'> 4
<input type='checkbox' class='SomeClass' data=prodid='5'> 5
<div id='ProductInfoDiv'></div>
Run Code Online (Sandbox Code Playgroud)
这是我的伪JavaScript:
// set vars
$Checkbox = $('input.SomeClass');
$ProductInfoDiv = $('div#ProductInfoDiv');
// listen for click
$Checkbox.click(getProductInfo);
// check which boxes are checked and load product info div
getProductInfo = function() {
// create list of product id from boxes that are checked
var QString = $Checkbox.filter(":checked");
// LOAD THE …Run Code Online (Sandbox Code Playgroud) 如何在ColdFusion中设置一个字符串变量,该字符串变量在字符串中使用单引号和两个双引号?
MyVar = "Include multiple addresses on "Recipient's E-Mail" separated by commas.";
Run Code Online (Sandbox Code Playgroud)
我知道我可以把它分解成几个变量或逃避一些字符,但我想知道是否有一种标准的"最佳"方式,一种简洁易读.
我可以这样做,但这很麻烦:
// THIS WORKS
MyVar = "Include multiple addresses on ";
MyVar = MyVar & '"Recipient's E-Mail "';
MyVar = MyVar & "separated by commas.";
Run Code Online (Sandbox Code Playgroud)
我应该注意到我在一个函数中使用CFSCRIPT.这使得使用savecontent笨重.并且CF在savecontent中不喜欢我的var(LOCAL.Info [i] .EmailProd07)的名称,所以我不得不重命名它.
// THIS WORKS
savecontent variable="LOCAL.MyVar" {
writeOutput("Multiple recipients may be included in ""Recipient's E-Mail"" separated by commas.");
};
LOCAL.Info[i].EmailProd07 = LOCAL.MyVar;
// THIS WORKS
LOCAL.Info[i].EmailProd07 = 'Multiple recipients may be included in "Recipient''s E-Mail" separated by commas.';
Run Code Online (Sandbox Code Playgroud) 我试图通过USPS API获取国际运费报价http://production.shippingapis.com/ShippingAPI.dll我有一个用户名和帐号,可以成功使用API获取国内费率报价.我找不到国际汇率报价的信息.
USPS网站似乎无处可去,肯定无法帮助找到我需要的东西.
这是USPS开发指南PDF的链接.我看不到有关国际航运的任何信息. https://www.usps.com/webtools/_pdf/Development-Guide-v3-1.pdf
你能在哪里获得有关获得USPS国际运费报价的信息吗?
coldfusion ×6
sql ×3
cfc ×2
coldfusion-9 ×2
jquery ×2
coldfusion-8 ×1
database ×1
escaping ×1
javascript ×1
scope ×1
sql-server ×1
usps ×1
xml ×1