我正在尝试在 Jquery Mobile/Coldfusion8 中设置用户身份验证。我只使用了一个星期的 Coldfusion,所以我仍然处于不稳定的状态。
假设我有以下 Jquery Mobile 页面:
// "outside"
index.cfm
content.cfm
content2.cfm
content3.cfm
// "inside"
secure.cfm
用户应该能够使用登录表单从所有外部页面登录。
我正在尝试考虑使用多个内容页面处理此问题的最佳方法,并且每个页面都有自己的登录名(无法更改)。问题是,当更改页面时,我在 DOM 中总是至少有两个页面,所以会有两个名为“LoginForm”的登录表单。
尽管如此,我还是尝试了,并收到此错误:
Variable THISFORM is undefined
不知道为什么?可能是因为 index.cfm 页面上已经有一个“loginForm”。
我的问题:
关于我的错误的任何线索?
设置这样的东西的最佳方法是什么?我认为整个登录例程应该进入 index.cfm,因为这将是始终保留在 DOM 中的锚页面。我还将登录表单放在模板中并将其拉入每个页面,这也感觉不错。
但是应该如何处理我的登录表单的多个实例呢?
感谢帮助
编辑: 一些代码:
<!-- TEMPLATE -->
<CFFORM ACTION = "#ThisForm#" NAME = "LoginForm" >
<input name = "Username2" id="Username2" type="text" />
<input name = "Password2" id= "Password2" type="password" />
<input type = "submit" id="CheckLogin" name="CheckLogin" value="<cfoutput>#tx_login#</cfoutput>" />
</CFFORM>
<!-- INDEX PAGE and content pages all look like this -->
<cfoutput>
<div data-role="page" id="starter">
<div data-role="header" data-position="fixed" data-theme="a">
<h1><cfoutput>#tx_willkommen#</cfoutput > </h1>
<!-- this calls the template -->
<CFINCLUDE TEMPLATE="../templates/tmp_pop.cfm">
</div>
<div data-role="content "...
</cfoutput>
<!-- inside application.cfm -->
<cfif Session.ative EQ "No ">
<CF_index datasource="mydatabase "
...>
<!-- inside index.cfm -->
<cfif Session.ative EQ "No ">
<CFPARAM NAME="Attributes.Datasource ">
<CFPARAMs more params...
</cfif>
不确定这是否有用,但您应该从中获得基本结构。可能是问题所在,如果没有会话处于活动状态,我只在 index.cfm 上设置参数。如果用户访问 index.cfm,设置了参数,则创建了一个会话。我想当我将下一页拉入 DOM 时,这些参数仍然有效,不是吗?