2012-11-12 70 views
0

幾天前,我做了一個Coldfusion 9腳本,但在提交表單後,查詢不會在Firefox中運行。在谷歌瀏覽器中一切正常,但不是在Firefox中。表單在Firefox和谷歌瀏覽器中提交差異(ColdFusion)

我試過谷歌它,但我找不到任何與此問題有關的東西。如果在閱讀完這些內容後對你有些不清楚的話 - 只是問一下,我會盡力向你解釋一下。

腳本上可以找到:http://pastebin.com/Bic28B3L

親切的問候,

+0

在一個側面說明,我會強烈建議檢查出'cfqueryparam'標記http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24 -7f6f。html – Sergii

+0

在另一個網站上放置您的代碼在這裏沒有用處。當該鏈接不再有效時會發生什麼? Stack Overflow的目的之一就是爲未來的讀者提供一個答案庫,而不僅僅是爲了解決您的問題。 – ale

回答

1

您可以留下您的腳本,因爲它是與

<cfif CGI.REQUEST_METHOD IS "POST"> 

更換

<cfif IsDefined('form.submit')> 

檢查是否提交表單。

+0

感謝您的幫助!這爲我解決了。 – Yannick

+0

關於isdefined和cgi.request_method之間區別的更多細節將會有所幫助。 我不知道是否有一個問題'''。 –

+0

@JamesMohler我不這麼認爲。該標籤只是生成一個HTML'

1

我的猜測是,FF和Chrome正在處理該行不同產生的表單元素:

<cfinput type='image' src='http://linehotel.org/c_images/bot_buy.png' name='submit' value='Koop deze badge nu'> 

它看起來像你的代碼正在檢查form.submit存在,所以我會看看這個標記生成的源。

要嘗試的另一件事是安裝並運行Fiddler並使用它捕獲Chrome和FF所提交的內容並比較兩者,特別是查看請求部分的WebForms選項卡。如果它與瀏覽器相關,那就會有所不同。

1

罪魁禍首是兩個摺疊:

<cfinput type='image'...> 

而且

<cfif IsDefined('form.submit')> 

ColdFusion的會爲您CFINPUT像這樣的HTML:

<input type="image"... 

和Firefox會產生一種形式像這樣的帖子:

submit.x: mouseclick x coords. 
submit.y: mouseclick y coords. 

Firefox將不會返回表單文章中圖像的名稱。它只會返回圖像映射的X和Y值。您可能需要做的是將<CFINPUT> TAG替換爲HTML <INPUT type="submit">按鈕,並使用CSS將圖像應用於該標籤。您甚至可以考慮檢查其他表單變量來代替提交按鈕。

+0

在這種情況下,與大多數情況一樣,它更好地使用structKeyExists而不是isDefined ... ... 這樣一來Chrome和FF都會選擇是否顯式。提交存在。 –

+0

StructKeyExists是我最好的選擇。無論如何,「提交」在FF中的表單結構中都不存在。在FF中,存在一個名爲「submit.x」的鍵和另一個名爲「submit.y」的鍵。 –

+0

另請參閱:[類型=「圖像」和類型=「提交」?]之間的差異(http://stackoverflow.com/questions/2082005/differences-between-type-image-and-type-submit?rq=1 ) –

1

看你的代碼,你可能也想看看cfqueryparam標籤,以幫助防止SQL注入,你可能想要做的CFQUERY外部,而不是在它的計算...例如:

<cfquery name = "pay" datasource = "#DSN#"> 
UPDATE users 
SET bots=#user.bots#-1 
WHERE id=#user.id# 
</cfquery> 

可能是這樣的美好:

<Cfset xBots=user.bots-1> 

<cfquery name = "pay" datasource = "#DSN#"> 
UPDATE users 
SET bots=<cfqueryparam cfsqltype="cf_sql_integer" value="#xBots#"> 
WHERE id=<cfqueryparam cfsqltype="cf_sql_integer" value="#user.id#"> 
</cfquery 
+0

這真的很有用!非常感謝。 – Yannick

相關問題