2011-01-07 16 views
0

Dreamweaver CS5とColdfusion 9を使用してダイナミックWebサイトを構築しています。私はID、FullName、名、姓、ユーザー名、パスワード、AcessLevelsを含むログイン情報を格納するMS Accessデータベースを持っています。セッション変数の出力を変更する

私の質問はこれです: 私は現在、ログインページに入力されたときにユーザー名を追跡するセッション変数を持っています。しかし、ユーザー名を使用してユーザーのFullNameをプルしてWebページ全体に表示し、データのクエリに使用したいと考えています。ログインページでFullNameを入力せずにユーザー名とパスワードのみを入力する場合は、セッション変数を読み取るようにセッション変数を変更するにはどうすればよいですか。

追加情報が必要な場合は、下記のログイン情報コードを記載しています。

これは、FullName値が存在するパスです。DataSource「アクセス」テーブル「Logininfo」フィールド「FullName」ログインページから送信されたユーザー名に基づいてFullNameを一意にします。

新人の間違いがあった場合は、事前にお詫びします。 Ha。

<cfif IsDefined("FORM.username")> 
    <cfset MM_redirectLoginSuccess="members_page.cfm"> 
    <cfset MM_redirectLoginFailed="sorry.cfm"> 
    <cfquery name="MM_rsUser" datasource="Access"> 
    SELECT FullName, Username,Password,AccessLevels FROM Logininfo WHERE Username=<cfqueryparam value="#FORM.username#" cfsqltype="cf_sql_clob" maxlength="50"> AND Password=<cfqueryparam value="#FORM.password#" cfsqltype="cf_sql_clob" maxlength="50"> 
    </cfquery> 
    <cfif MM_rsUser.RecordCount NEQ 0> 
    <cftry> 
     <cflock scope="Session" timeout="30" type="Exclusive"> 
     <cfset Session.MM_Username=FORM.username> 
     <cfset Session.MM_UserAuthorization=MM_rsUser.AccessLevels[1]> 
     </cflock> 
     <cfif IsDefined("URL.accessdenied") AND false> 
     <cfset MM_redirectLoginSuccess=URL.accessdenied> 
     </cfif> 
     <cflocation url="#MM_redirectLoginSuccess#" addtoken="no"> 
     <cfcatch type="Lock"> 
     <!--- code for handling timeout of cflock ---> 
     </cfcatch> 
    </cftry> 
    </cfif> 
    <cflocation url="#MM_redirectLoginFailed#" addtoken="no"> 
    <cfelse> 
    <cfset MM_LoginAction=CGI.SCRIPT_NAME> 
    <cfif CGI.QUERY_STRING NEQ ""> 
    <cfset MM_LoginAction=MM_LoginAction & "?" & XMLFormat(CGI.QUERY_STRING)> 
    </cfif> 
</cfif> 
+0

あなたは、Adobe Dreamweaverアプリケーション開発フォーラムで同じ質問をして、@Danilo Celicが返信に手間取る2時間前に回答を得ました。あなたは、他の人があなたを助けようと時間を浪費するのを避けるために解決されたとしてあなたの質問をマークしておくべきです。 –

答えて

0

クエリは既にFullNameを取得しているようですので、FullNameの値を含むセッション変数が必要な場合です。

あなたはこのコードを持っている:次のように

変更を

<cflock scope="Session" timeout="30" type="Exclusive"> 
    <cfset Session.MM_Username=FORM.username> 
    <cfset Session.MM_UserAuthorization=MM_rsUser.AccessLevels[1]> 
    <cfset Session.FullName=MM_rsUser.FullName[1]> 
</cflock> 
を(動作するはずですがテストされていないので、メモリに基づいて、しばらくCFを訴えていません)

これはSession.FullNameを追加し、サイトの他の場所でその名前を参照できます。ユーザーがログインした後はどのページにも表示されるはずですので、その値を使用する前にログインする必要のないページに存在することを確認する必要があります。

注意:使用しているコードは、Dreamweaverのログインサーバーの動作によって自動的に生成されます。私が示唆している変更は、そのサーバー動作の検査または再適用を破る可能性があります。そのような場合は、追加したコード行を削除し、必要な変更を加えた後に再追加することで復旧できます。 FullNameを使用できるようにするには、FullNameがクエリのSELECTステートメントに含まれていることを確認する必要があります。

関連する問題