幾天前,我做了一個Coldfusion 9腳本,但在提交表單後,查詢不會在Firefox中運行。在谷歌瀏覽器中一切正常,但不是在Firefox中。表單在Firefox和谷歌瀏覽器中提交差異(ColdFusion)
我試過谷歌它,但我找不到任何與此問題有關的東西。如果在閱讀完這些內容後對你有些不清楚的話 - 只是問一下,我會盡力向你解釋一下。
腳本上可以找到:http://pastebin.com/Bic28B3L
親切的問候,
幾天前,我做了一個Coldfusion 9腳本,但在提交表單後,查詢不會在Firefox中運行。在谷歌瀏覽器中一切正常,但不是在Firefox中。表單在Firefox和谷歌瀏覽器中提交差異(ColdFusion)
我試過谷歌它,但我找不到任何與此問題有關的東西。如果在閱讀完這些內容後對你有些不清楚的話 - 只是問一下,我會盡力向你解釋一下。
腳本上可以找到:http://pastebin.com/Bic28B3L
親切的問候,
您可以留下您的腳本,因爲它是與
<cfif CGI.REQUEST_METHOD IS "POST">
更換
<cfif IsDefined('form.submit')>
檢查是否提交表單。
感謝您的幫助!這爲我解決了。 – Yannick
關於isdefined和cgi.request_method之間區別的更多細節將會有所幫助。 我不知道是否有一個問題''
@JamesMohler我不這麼認爲。該標籤只是生成一個HTML'
我的猜測是,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選項卡。如果它與瀏覽器相關,那就會有所不同。
罪魁禍首是兩個摺疊:
<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將圖像應用於該標籤。您甚至可以考慮檢查其他表單變量來代替提交按鈕。
在這種情況下,與大多數情況一樣,它更好地使用structKeyExists而不是isDefined
StructKeyExists是我最好的選擇。無論如何,「提交」在FF中的表單結構中都不存在。在FF中,存在一個名爲「submit.x」的鍵和另一個名爲「submit.y」的鍵。 –
另請參閱:[類型=「圖像」和類型=「提交」?]之間的差異(http://stackoverflow.com/questions/2082005/differences-between-type-image-and-type-submit?rq=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
這真的很有用!非常感謝。 – Yannick
在一個側面說明,我會強烈建議檢查出'cfqueryparam'標記http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24 -7f6f。html – Sergii
在另一個網站上放置您的代碼在這裏沒有用處。當該鏈接不再有效時會發生什麼? Stack Overflow的目的之一就是爲未來的讀者提供一個答案庫,而不僅僅是爲了解決您的問題。 – ale