第 7 章 Doking の BLOG ユーザー ログイン ページの実装により
、ユーザーは Web サイトにログインしてメモを投稿したり、メモに返信したりできるようになります。
ユーザー ログインが正しく検証された後、ページはユーザー ログイン後の外観に変わります。
(1) テンプレート bkblog.dwt.aspx を開き、左側の列にテーブル yhtab を挿入し、図 7-1 の黒丸のように設計します。
(2) YH テーブル クエリに関するデータ セット yhlog を挿入して、ユーザーのログインが正しいことを確認します。
①図 7-2 に示すように、データセット yhlog をフィルタに設定します。
図 7-1 テーブル yhtab の設計図
図 7-2 データセット yhlog の挿入
② 図 7-3 に示すように、「詳細」ボタンをクリックして詳細データセットモードに切り替えます。
図 7-3 データセット yhlog の挿入
③ 図に示すように、パラメータ「+」をクリックして「パラメータの編集」ダイアログボックスをポップアップ表示し、名前に「@Logpas」を入力し、タイプとして「WChar」を選択します。 7-4.
図 7-4 Logpass に参加するための追加
④「作成」ボタンをクリックすると、「Logpass」という名前の「値の生成」ダイアログ ボックスが表示され、図 7-5 に示すように、ソースとして「フォーム変数」を選択します。
図 7-5 値の生成ダイアログボックス
⑤ 「OK」をクリックして設定を保存し、データセット yhlog ダイアログボックスに戻ります。 SQL ステートメントを変更すると、変更結果が図 7-6 に示されます。
図 7-6 データセット yhlog の変更
(3) <html> タグの前に、図 7-7 の赤丸で示したコードを挿入します。
図 7-7 uselog 関数の定義
(4) テンプレート bkblog.dwt.aspx のデータ セット yhlog の下にあるフィールド YHNAME をページ上の任意の位置にドラッグし、その後にデータ セット yhlog の下にフィールド YHID をドラッグします。
<%# yhlog.FieldValue("YHNAME", Container) %><%# yhlog.FieldValue("YHID", Container) %>
上記のコードを
次のように
変更します:<%# uselog(yhlog.FieldValue(" YHNAME", Container),yhlog .FieldValue("YHID", Container)) %>
(5) ZT テーブル クエリに関するデータ セット bjre を挿入し、ユーザーが公開した学習ノートの総数を返します。
① 図 7-8 に示すように、データセットを「フィルター」に設定します。フィルターフィールドは YHID、フィルター方法は入力値です。
図 7-8 データセット bjre の挿入
② 「詳細」をクリックし、詳細データセットモードに切り替え、図 7-9 に示すように SQL を変更します。
図 7-9 データセット bjre の変更
③「編集」ボタンをクリックし、テキストフィールドの YHID を session("USEID") に変更します。 結果は図 7-10 に示されます。
図 7-10 データセットバイレのパラメータ編集
④ 「OK」キーを押し、「OK」キーを押してデータセットバイレの作成を完了します。
(6) HF テーブル クエリに関するデータ セットを挿入し、ユーザーが公開した学習ノートの総数を返します。クエリ テーブルが異なることを除いて、他の設定はデータ セット bjre と同じです (最初にデータ セット plre をコピーして貼り付けてから、それを変更できます)。
(7) データセット bjre の下のフィールド Eprl100 をテーブル yhtab の「Post a note:」の後ろにドラッグし、データセット plre の下のフィールド Eprl100 をテーブル yhtab の「Post a Reply:」の後ろにドラッグします。
(8) yhtab テーブルの「ユーザー情報」の前にカーソルを移動し、ASP.NET ショートカット メニューの「データのバインド」をクリックします。結果は図 7-11 に示されています。
図 7-11 バインドされたデータの挿入
図 71 の赤い縦線にカーソルを置き、次のように入力します。 session("USENAME")
(9) デザイン ビューに戻り、テーブル yhtab に「Publish New Notes」へのハイパーリンクを作成します。 : .. /ztfb.aspx
テーブル yhtab に「情報の変更」へのハイパーリンクを作成します: ../yhsg.aspx
結果は図 7-12 に示されています。
図 7-12 テーブル yhtab の変更
(10) テーブル yhtab を選択し、コード ビューに戻り、「Ctrl+X」を押すか、[編集] メニューの「切り取り」を選択する、従来の方法: 新しく作成したメモ帳に貼り付けるまたは Word 文書内で。
(11) デザイン ビューに戻り、テーブル ログタブを選択し、図 7-13 に示す赤い縦線の位置にカーソルを移動します。
図 7-13図 7-14 の赤丸で示すように、
カーソル位置 (12) に移動し
、コードを入力します。図 7-14 ラベル <form> の前にコードを挿入
(13) 図 7-15 の赤丸のように、カーソルを Yhlogfrm 終了タグ </form> の後に移動し、コードを入力します。
図 7-15 </form> タグの後にコードを挿入
(14) 手順 7 で切り取ったテーブル yhtab を、コード <%end if%> の前と <% else %> の後に貼り付けます。
(15) テンプレート bkblog.dwt.aspx を保存します。 bkblog.dwt.aspx テンプレートに基づくすべての Web ページを開き、[サーバーの動作] の bkblog.dwt.aspx テンプレートに新しく追加されたデータ セット yhlog、bjre、および plre をコピーして貼り付けます。あとは手順3と同じようにコードを挿入すればOKです。
(16) ユーザー ログイン前は図 7-16 に示すように、ユーザー ログインに成功した後は図 7-17 に示すように、IE ブラウザでindex.aspx を参照します。 ASP.NET は gb2312 エンコーディングの送信をサポートしていないことに注意してください。これは変更する必要があるため、今後も心配しないでください。
図 7-16 ユーザーログイン前
図 7-17
ユーザー ログイン後のリマインダー: 読者の学習を促進するために、チュートリアルはモジュールに分割されています。実際、すべての機能は最初からテンプレート内で実行する必要があります。特に、テンプレートに挿入する必要があるデータ セットとヘッダー ローダーは、その後の変更後に Web ページを更新できないためです。
ログイン後、各学習ノートに返信メッセージを投稿できます。
(1) hf.aspx を開き、フォーム yhplfrm を挿入し、次にテーブル Hftab を挿入します。ID が HFNAME のサーバー テキスト ボックス コントロールをテーブルに挿入します。ID が HFTEXT のサーバー テキスト エリア コントロールを挿入します。 ID が plbottom のボタンを無効に設定すると、結果が図 7-18 に示されます。
図 7-18 テーブル Hftab の関連設計
(3) テーブル Hftab の「name:」の後にデータ セッション (「usename」) をバインドします (方法は 7.1 の手順 8 に示したとおりで、「ユーザー情報」の前にユーザー名をバインドします) )。
(4) データセット Ztre の下のフィールド ZTNAME をテキスト ボックス HFNAME にドラッグし、テキスト ボックス HFNAME のプロパティ ウィンドウで、初期値
<%# Ztre.FieldValue("ZTNAME", Container) %>
を次のように変更します。
<%# "RE:"&Ztre.FieldValue("ZTNAME", Container) %>
(5) plbottomボタンを選択し、右クリックしてステータスバー<input # plbottom>を選択し、ポップ内の「ラベルの編集」を選択します-up ショートカット メニュー (図 7-19 を参照)。
図 7-19 <input # plbottom> クイック編集タグの選択
(6) ポップアップの <input # plbottom> クイック編集タグで、
disabled
="true"
を次のように変更します。
"USENAME ")<>nothing),false,true) %>
結果を図 7-20 に示します。
図 7-20 ショートカット <input # plbottom> 編集ラベルは、
ボタン plbottom を設定します。このボタンは、ユーザーがログインする前は無効になっており、ユーザーがログインすると使用可能になります。
(4) レコード サーバーの挿入動作を追加し、フォーム yhplfrm から値を送信し、挿入テーブルを HF として選択します。その他の設定は図 7-21 に示されています。
図 7-21 挿入レコード サーバーの動作の追加
図 7-21 では、フィールド HFID、HFTIME、YHID、および ZTID が値を取得していないことがわかります。フィールド HFID は自動番号であり、データベースはレコードに値を自動的に追加します。フィールド HFTIME は、Access の既定値が date() に設定されているため、データベースは新しく追加されたレコードに今日の日付を自動的に追加します。フィールド YHID はログイン ユーザーの ID コードで、フィールド ZTID は公開するノートの ID です。したがって、フィールドYHIDにはログインユーザのIDコードを、フィールドZTIDには公開するノートのIDコードをそれぞれ追加する必要がある。
(5) コード ビューに戻り、図 7-22 の黒く選択された部分に示すように、レコードを挿入するコード (dkconn、HF) を見つけます。
図 7-22 レコードを挿入するコードの検索 (dkconn、HF)
(6) コード:
CommandText='<%# "INSERT INTO HF (HFNAME, HFTEXT) VALUES (?, ?,)" %>'
を次のように変更します。
CommandText ='<%# "INSERT INTO HF (HFNAME, HFTEXT, ZTID, YHID) VALUES (?, ?, ?, ?)" %>'
(7) パラメータを順番に追加します:
<Parameter Name="@ZTID" Value = '<%# Ztre.FieldValue("ZTID", コンテナ) %>' Type="Integer" />
<Parameter Name="@YHID" Value='<%# SESSION("USEID") %>' Type= " 整数" />
結果を図 7-23 に示します。
図 7-23 レコード(dkconn、HF)コード挿入の修正結果
(8) 返信メッセージを公開する前に、タイトルや内容が空の返信メッセージが公開されないよう、返信タイトルと返信内容を検証する必要があります。 6.2 項の RequiredFieldValidato 検証コントロールの挿入方法を参照し、テキスト ボックス HFNAME とテキスト エリア コントロール HFTEXT に RequiredFieldValidato 検証コントロールをそれぞれ追加します。
(9) ユーザーが返信メッセージを投稿すると、学習ノート内の返信の総数が自動的に 1 つ増加する必要があります。つまり、ZT テーブルの下の HFZS フィールドが自動的に 1 つ増加する必要があります。
① [サーバー動作] パネルで、「更新レコード」サーバー動作を挿入し、更新テーブルを ZT に設定し、フォーム yhplfrm から送信された値を一時的に設定し、一時的に設定します: 'HFZS' は 'HFTEXT' から値を取得します ( 'Integer') ;一時的な仮定: 'ZTID' はレコードを選択するために 'HFTEXT' を 'Integer' として使用します。
② なぜすべて一時的なものなのでしょうか?つまり、最初に Dreamweaver にコードを自動的に生成させ、後で変更できるようにします。まずコード ビューに切り替え、更新レコード (dkconn,ZT) の元のコードを検索し、次のコードを見つけます。
<Parameter Name="@HFZS" Value='<%# IIf((Request.Form("HFTEXT") ) <> なし ), Request.Form("HFTEXT"), "") %>' Type="Integer" />
<Parameter Name="@ZTID" Value='<%# IIf((Request.Form(" HFTEXT") < > Nothing), Request.Form("HFTEXT"), "") %>' Type="Integer" />
これを次のように変更します:
<Parameter Name="@HFZS" Value='<%# Ztre。 FieldValue(" HFZS", Container)+1 %>' Type="Integer" />
<Parameter Name="@ZTID" Value='<%# session("ztanw") %>' Type="Integer" />
(10) hf.aspxを保存します。
、ログイン後、メッセージに返信するだけでなく、新しい学習ノートを公開できます。
(1) テンプレート bkblog.dwt.aspx から生成された新しい動的 Web ページ ztfb.aspx を作成し、本体の編集可能領域に 1 列 5 行のテーブル ztfb を挿入します。
(2) データセット zthb を追加し、フィルターを YHID に設定し、パラメーターをステージ変数 USENAME に設定します。この設計を図 7-24 に示します。
図 7-24 データセット zthb の追加
(3) データセット配下の該当フィールドをテーブル ztfb にドラッグする方法については、4.2 項の方法を参照してください。
(4) hf.aspx を開き、フォーム yhplfrm をコピーし、Web ページ ztfb.aspx のテーブル zthb の 5 行目に貼り付け、テキスト ボックス HFNAME をクリアし、必要な変更を加えます。結果は図 7- に示されています。 25.
図 7-25 テーブル ztfb の設計
(2) テキスト ボックスの名前を HFNAME から ZTNAME に、テキスト エリアの名前を HFTEXT から ZTTEXT に変更します。
(3) テーブル zthb の 1 行目、2 行目、3 行目をデータセット zthb の繰り返し領域とし、テーブルの 4 行目にデータセット ナビゲーションを挿入します。
(4) リスト/メニュー LMID を挿入し、そのプロパティ ウィンドウでリスト値をクリックし、ポップアップ リスト値ダイアログ ボックスでプロジェクト ラベルを次のように入力します。値として 1、[OK] を押します。図 7-26 に示すように、キーを押します。
図 7-26 LMID リスト値ダイアログ ボックス
(5) リスト/メニュー LMID1 を選択したままにして、コード ビューに切り替え、リスト/メニュー LMID の元のコードを見つけ、フィールド LMID をデータ セット menuda の下にドラッグし、データを次のように置き換えます。図 7-27 に示すように、値は 1 に等しくなります。
図 7-27 データ セット メニューの下にフィールド LMID をドラッグ アンド ドロップします。
(6) データ セット メニューの下にフィールド LM をドラッグし、「設計項目」を置き換えます。結果は図 7-28 に示されます。
図 7-28 データセットメニューダの下にフィールド LM をドラッグします。
(7) 図 7-3-5 の赤丸内のコードを選択し、データセットメニューダの繰り返し領域として定義します。結果は次のようになります。図7-29。
図 7-29 データ セット メニューのリスト
(8) の繰り返し領域を定義して、「レコードの挿入」サーバー動作を追加します。その設定を図 7-30 に示します。
図 7-30 「レコードの挿入」サーバーの動作の追加
(9) コード ビューに切り替え、レコードの挿入 (dkconn, ZT) の元のコードを見つけて、次のコードを見つけます。
CommandText='<%# "INSERT INTO ZT (LMID, ZTNAME, ZYTEXT) ) VALUES (?, ?, ?)" %>'
次のように変更します:
CommandText='<%# "INSERT INTO ZT (LMID, ZTNAME, ZYTEXT,YHID) VALUES (?, ?, ?, ?)" %>'
( 10) パラメータを追加します:
<Parameter Name="@YHID" Value='<%# session("USEID") %>' Type="Integer" />
結果を図 7-31 に示します。
図 7-31 レコード挿入用のオリジナルコード(dkconn、ZT)の変更
ユーザー情報変更ページのデザインは、ユーザー登録ページのデザインと基本的に同じです。
(1) 登録ページ yhlogok.aspx を開き、yhsg.aspx として保存し、適切な変更を加えます。結果を図 7-32 に示します。
図 7-32 yhsg.aspx ページのデザイン
(2) 図 7-33 に示すように、「レコードの挿入 (dkconn、YH)」サーバー ビヘイビアを削除し、データ セット yhsg を追加します。
図 7-33 データ セット yhsg の挿入
(3) データ セット yhsg の下の関連フィールドを対応するテキスト ボックスにバインドします。結果を図 7-34 に示します。
図 7-34 関連するテキスト ボックスへのダイナミック テキストのバインド
(4) レコード サーバーの更新動作を追加し、レコードを選択するために「YHID」と「YHNAME」を「整数」として一時的に設定します。結果は図 7-35 に示されています。
図 7-35 更新レコードの追加サーバー動作
(5) 更新レコードの元のコードで、次のコードを見つけます。
<Parameter Name="@YHID" Value='<%# IIf((Request.Form("YHNAME") < > Nothing), Request.Form("YHNAME"), "") %>' Type="Integer" />
次のように変更します:
<Parameter Name="@YHID" Value='<%# IIf((Not Session( "USEID") Is Nothing), Session("USEID"), "") %>' Type="Integer" />
(6) yhsg.aspx を保存します。