1

我正在尝试在 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 时,这些参数仍然有效,不是吗?

4

1 回答 1

1

我从来没有做过任何移动开发,但我们所做的只是设置一个 cookie,有一个过期时间,并在每次用户尝试访问页面时检查那个 cookie,并且只包含那个 cookie 检查文件

<cfinclude template="cookie_check.cfm">

cookie_check.cfm:

<CFIF IsDefined("cookie.User_Id") is False OR isDefined("cookie.password") is False
    <title>Login Error</title>
    <h3>You must login . Click here to <a href="index.cfm">login</a>.</h3>
    <CFABORT>
</CFIF> 

我假设您可以在您的页面上执行类似的操作。只需包含一个小的检查文件,如果它已过期,请显示登录页面。

于 2012-04-27T13:39:45.507 回答