1

Jquery Mobile/Coldfusion8 でユーザー認証をセットアップしようとしています。私は Coldfusion を 1 週間しか使っていないので、まだ不安定な状態です。

次の Jquery Mobile ページがあるとします。

// "outside"
index.cfm
content.cfm
content2.cfm
content3.cfm
// "inside" 
secure.cfm

ユーザーは、ログイン フォームを使用してすべての外部ページからログインできる必要があります。

複数のコンテンツ ページとそれぞれに独自のログインがある (これは変更できません) ことで、これを処理する最善の方法を考えようとしています。問題は、ページを変更するとき、常に DOM に少なくとも 2 つのページがあるため、「LoginForm」という名前の 2 つのログイン フォームが存在することです。

それでも試してみましたが、このエラーが発生しています:

Variable THISFORM is undefined

なぜかわからないのですか?おそらく、index.cfm ページに既に「loginForm」があるためです。

私の質問:
私のエラーの手がかりはありますか?

このようなものを設定する最良の方法は何でしょうか? これは常にDOMにとどまるアンカーページになるため、ログインルーチン全体をindex.cfmに入れる必要があると思います。また、ログイン フォームをテンプレート内に配置し、これをすべてのページに取り込みます。これも適切だと感じています。

しかし、ログインフォームの複数のインスタンスをどのように処理する必要がありますか?

手伝ってくれてありがとう

編集: いくつかのコード:

<!-- 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 に移動すると、params が設定され、セッションが作成されます。次のページを 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 に答える