我正在使用我公司以前在使用框架的網站上使用的非常舊的登錄系統。 之前,當有人嘗試錯誤的用戶/合格組合時,該框架將加載一個簡單的cfinclude文件,其中包含登錄表單和錯誤消息。 現在,我在彈出窗口中使用了一個調用application.cfc的表單,但不是在彈出窗口中將錯誤消息重新加載到頁面,而是將cfinclude文件從應用程序組件加載到新頁面。在ColdFusion中登錄系統9
所以我需要爲這個應用程序發生一些事情。首先,我需要初始彈出窗口保持不變,如果user/pass的組合錯誤,則不應提交頁面,最後我需要將錯誤消息顯示在彈出窗口的某處。
如果有人做過這樣的事情,我會非常感謝您的反饋。
這是部分的我的代碼:
登錄表單:
<!--- loginErrMsg display - to tell why login is denied --->
<cfif isdefined("loginErrMsg")><span style="color:red">#loginErrMsg#</span><br /></cfif>
<form name="LoginForm" id="LoginForm" action="<cfif test is false>https://secure.example.com</cfif>#loginFormAction#" method="post" target="_top">
</cfoutput>
<input type="hidden" name="loginPost" value="true">
<p>
Login below to take advantage of the great services we offer:
</p>
E-mail:<input name="j_username" class="loginform" type="text" size="30" maxlength="50" id="j_username">
Password: <input name="j_password" type="password" size="30" maxlength="16" class="loginform">
<br />
<input type="submit" name="btn" value="Submit" class="bluebuttonnormal">
</form>
的Application.cfc代碼:
<cflogin applicationtoken="swmadmin">
<cfif NOT IsDefined("cflogin")>
<cfinclude template="login.cfm">
<cfabort>
<cfelse>
<cfquery name="userlookup" datasource="#ds#">
SELECT clientadminID, roles, isFaxOnly, acctEnabled FROM clientadmin
WHERE
username=<cfqueryparam value="#cflogin.name#" CFSQLTYPE="CF_SQL_VARCHAR" maxlength="50">
and password=<cfqueryparam value="#cflogin.password#" CFSQLTYPE="CF_SQL_VARCHAR" maxlength="16">
</cfquery>
<cfif userlookup.recordcount eq 0>
<cfset loginErrMsg = "Invalid login.">
<cfinclude template="login.cfm">
<cfabort>
</cflogin>
非常感謝您投入這篇文章的時間和精力。我明天會明白並更新我的帖子。 – Geo