Глава 7 Реализация страницы входа в систему БЛОГА Doking
завершила регистрацию пользователей. Теперь пользователи могут входить на веб-сайт, оставлять заметки и отвечать на них.
Логин пользователя, после проверки правильности, внешний вид страницы меняется после входа пользователя.
(1) Откройте шаблон bkblog.dwt.aspx, вставьте таблицу yhtab в левый столбец и создайте ее, как показано в черном кружке на рис. 7-1.
(2) Вставьте набор данных yhlog о запросе таблицы YH, чтобы проверить правильность входа пользователя.
① Установите набор данных yhlog для фильтрации, как показано на рисунке 7-2.
Рисунок 7-1 Чертеж таблицы yhtab
Рисунок 7-2. Вставка набора данных yhlog
② Нажмите кнопку «Дополнительно», чтобы переключиться в режим расширенного набора данных, как показано на рисунке 7-3.
Рисунок 7-3. Вставка набора данных yhlog
③ Нажмите параметр «+», чтобы открыть диалоговое окно «Редактировать параметры», введите имя как «@Logpas» и выберите «WChar» в качестве типа, как показано на рисунке. 7-4.
Рисунок 7-4 Добавить для участия в Logpass
④Нажмите кнопку «Создать», чтобы открыть диалоговое окно «Создать значение» с именем «Logpass», и выберите «Переменную формы» в качестве источника, как показано на рисунке 7-5.
Рисунок 7-5 Диалоговое окно «Создать значение
» ⑤ Нажмите «ОК», чтобы сохранить настройки и вернуться в диалоговое окно набора данных yhlog. Измените оператор SQL, и результат изменения показан на рисунке 7-6.
Рис. 7-6. Измените набор данных yhlog
(3) Перед тегом <html> вставьте код, показанный в красном кружке на рис. 7-7.
Рис. 7-7. Определите функцию uselog
(4) Перетащите поле YHNAME под набором данных yhlog в шаблоне bkblog.dwt.aspx в любое место на странице, а затем перетащите поле YHID под набором данных yhlog после него. Код. выглядит следующим образом:
<%# yhlog.FieldValue("YHNAME", Container) %><%# yhlog.FieldValue("YHID", Container) %>
Измените приведенный выше код на:
<%# uselog(yhlog.FieldValue(" YHNAME", Container),yhlog .FieldValue("YHID", Container)) %>
(5) Вставьте набор данных bjre о запросе таблицы ZT и верните общее количество учебных заметок, опубликованных пользователем.
① Установите для набора данных значение «Фильтр», поле фильтра: YHID, а метод фильтра: входное значение, как показано на рисунке 7-8.
Рисунок 7-8. Вставка набора данных bjre
② Нажмите «Дополнительно», переключитесь в режим расширенного набора данных и измените SQL, как показано на рисунке 7-9.
Рисунок 7-9 Изменение набора данных bjre
③Нажмите кнопку «Изменить» и измените YHID на session («USEID») в текстовом поле. Результат показан на рисунке 7-10.
Рисунок 7-10 Редактирование параметров набора данных
④ Нажмите кнопку «ОК», а затем нажмите кнопку «ОК», чтобы завершить набор данных.
(6) Вставьте набор данных plre о запросе таблицы HF и верните общее количество учебных заметок, опубликованных пользователем. За исключением различных таблиц запросов, остальные настройки такие же, как для набора данных bjre (сначала вы можете скопировать и вставить набор данных plre, а затем изменить его).
(7) Перетащите поле Eprl100 под набором данных bjre за надписью «Опубликовать заметку:» в таблице yhtab; перетащите поле Eprl100 под набором данных plre за надписью «Опубликовать ответ:» в таблице yhtab.
(8) Переместите курсор перед «Информацией о пользователе» в таблице yhtab и нажмите «Привязать данные» в контекстном меню ASP.NET. Результат показан на рисунке 7-11.
Рисунок 7-11. Вставьте связанные данные.
Удерживайте курсор на красной вертикальной линии на рисунке 71 и введите: session("USENAME")
(9) Вернитесь в представление дизайна и создайте гиперссылку на «Опубликовать новые заметки» в таблице yhtab. : .. /ztfb.aspx
Создайте гиперссылку на «Изменить информацию» в таблице yhtab: ../yhsg.aspx.
Результат показан на рис. 7-12.
Рис. 7-12 Изменение таблицы yhtab
(10) Выберите таблицу yhtab, вернитесь в представление кода, нажмите «Ctrl+X» или выберите «Вырезать» в меню [Правка], старый метод: вставьте ее во вновь созданный блокнот. или в документе Word.
(11) Вернитесь в режим проектирования, выберите вкладку журнала таблицы и переместите курсор в положение красной вертикальной линии, как показано на рисунке 7-13.
Рисунок 7-13 Переместитесь в позицию курсора
(12) и введите код, как показано в красном круге на Рисунок 7-14.
Рисунок 7-14. Вставка кода перед меткой <form>
(13) Переместите курсор после закрывающего тега Yhlogfrm </form> и введите код, как показано в красном кружке на рисунке 7-15.
Рисунок 7-15. Вставка кода после тега </form>
(14) Вставьте таблицу yhtab, вырезанную на шаге 7, перед кодом <%end if%> и после <% else %>.
(15) Сохраните шаблон bkblog.dwt.aspx. Откройте все веб-страницы на основе шаблона bkblog.dwt.aspx, скопируйте и вставьте вновь добавленные наборы данных yhlog, bjre и plre в шаблон bkblog.dwt.aspx в разделе [Поведение сервера]. Затем вставьте код, как в шаге 3, и все ок!
(16) Просмотрите index.aspx в браузере IE, как показано на рис. 7-16 перед входом пользователя в систему и как показано на рис. 7-17 после успешного входа пользователя в систему. Помните, что ASP.NET не поддерживает передачу кодировки gb2312. Ее необходимо изменить. Это упоминалось в предыдущей главе, так что не волнуйтесь в будущем.
Рисунок 7-16 Перед входом пользователя в систему
Рис. 7-17
Напоминание после входа пользователя в систему: Чтобы облегчить обучение читателей, руководство разделено на модули. Фактически, все функции должны быть выполнены в шаблоне с самого начала, особенно набор данных и загрузчик заголовков, которые необходимо вставить в шаблон, поскольку они не могут обновлять веб-страницу после последующих изменений.
После входа в систему пользователи могут публиковать ответные сообщения на каждую учебную заметку.
(1) Откройте hf.aspx, вставьте форму yhplfrm, а затем вставьте таблицу Hftab. Вставьте элемент управления текстовым полем сервера в таблицу с идентификатором HFNAME; вставьте элемент управления текстовой областью сервера с идентификатором HFTEXT; кнопку с идентификатором plbottom. Установите для нее значение «отключено», и результат показан на рисунке 7-18.
Рисунок 7-18 Соответствующий дизайн таблицы Hftab
(3) Привяжите сеанс данных («usename») к после «name:» в таблице Hftab (метод, как показано в шаге 8 из 7.1, для привязки имени пользователя перед «информацией о пользователе»). ).
(4) Перетащите поле ZTNAME под набором данных Ztre в текстовое поле HFNAME. В окне свойств текстового поля HFNAME измените исходное значение:
<%# Ztre.FieldValue("ZTNAME", Container) %>
на:
<%# "RE:"&Ztre.FieldValue("ZTNAME", Container) %>
(5) Выберите кнопку plbottom, щелкните правой кнопкой мыши и выберите строку состояния <input # plbottom> и выберите «Редактировать метку» во всплывающем окне. всплывающее контекстное меню, как показано на рисунке 7-19 «Показать».
Рисунок 7-19. Выберите тег быстрого редактирования <input # plbottom>
(6) Во всплывающем теге быстрого редактирования <input # plbottom> измените:
Disabled="true"
на:
Disabled=<%# iif((session( «USENAME»)<>ничего),false,true) %>
Результат показан на рисунке 7-20.
Рисунок 7-20 Метка редактирования ярлыка <input # plbottom>
устанавливает кнопку plbottom. Она отключается до входа пользователя в систему и становится доступной после входа пользователя в систему.
(4) Добавьте поведение сервера вставки записей, отправьте значение из формы yhplfrm, выберите таблицу вставки как HF и другие настройки, показанные на рисунке 7-21.
Рисунок 7-21. Поведение сервера добавления записей.
На рисунке 7-21 вы можете видеть, что поля HFID, HFTIME, YHID и ZTID не получают значений. Поле HFID — это автоматический номер, и база данных автоматически добавит значение к записи; поле HFTIME имеет значение по умолчанию, установленное в Date() в Access, поэтому база данных автоматически добавит сегодняшнюю дату к вновь добавленной записи. Поле YHID — это идентификационный код вошедшего в систему пользователя, а поле ZTID — это идентификатор публикуемой заметки. Поэтому идентификационный код вошедшего в систему пользователя необходимо добавить в поле YHID, а идентификационный код публикуемой заметки — в поле ZTID.
(5) Вернитесь к представлению кода и найдите код для вставки записи (dkconn, HF), как показано в выделенной черной части на рисунке 7-22.
Рисунок 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", Container) %>' Type="Integer" />
<Parameter Name="@YHID" Value='<%# SESSION("USEID") %>' Type= «Целое число» />
Результат показан на рисунке 7-23.
Рисунок 7-23 Результаты изменения при вставке кода записи (dkconn, HF)
(8) Перед публикацией ответного сообщения необходимо проверить заголовок и содержание ответа, чтобы предотвратить публикацию ответных сообщений с пустыми заголовками или пустым содержимым. Обратитесь к методу вставки элемента управления проверкой RequiredFieldValidato в Разделе 6.2 и добавьте элемент управления проверкой RequiredFieldValidato в текстовое поле HFNAME и элемент управления текстовой областью HFTEXT соответственно.
(9) Когда пользователь публикует ответное сообщение, общее количество ответов в учебных заметках должно автоматически увеличиваться на 1, то есть поле HFZS в таблице ZT должно автоматически увеличиваться на 1.
① На панели [Поведение сервера] вставьте поведение сервера «Обновить запись», установите для таблицы обновления значение ZT, временно установите отправленное значение из формы yhplfrm, временно установите: «HFZS» получает значение из «HFTEXT» (как «Целое число») ;Временное предположение: «ZTID» использует «HFTEXT» в качестве «Целое число» для выбора записей.
② Почему все они временные? Это значит, что Dreamweaver сначала автоматически сгенерирует некоторый код, чтобы его можно было изменить позже. Сначала переключитесь в представление кода, найдите исходный код записи обновления (dkconn,ZT) и найдите код:
<Parameter Name="@HFZS" Value='<%# IIf((Request.Form("HFTEXT" ) <> Ничего ), Request.Form("HFTEXT"), "") %>' Type="Integer" />
<Parameter Name="@ZTID" Value='<%# IIf((Request.Form(" HFTEXT") < > Ничего), 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) Создайте новую динамическую веб-страницу ztfb.aspx, созданную на основе шаблона bkblog.dwt.aspx, и вставьте таблицу ztfb с одним столбцом и пятью строками в основную редактируемую область.
(2) Добавьте набор данных zthb, установите фильтр YHID и установите параметр для переменной этапа USENAME. Схема показана на рисунке 7-24.
Рисунок 7-24 Добавление набора данных zthb
(3) Перетащите соответствующие поля под набором данных в таблицу ztfb. Метод см. в разделе 4.2.
(4) Откройте hf.aspx, скопируйте форму yhplfrm, вставьте ее в пятую строку таблицы zthb на веб-странице ztfb.aspx, очистите текстовое поле HFNAME и внесите необходимые изменения. Результат показан на рисунке 7. 25.
Рисунок 7-25 Дизайн таблицы ztfb
(2) Переименуйте текстовое поле HFNAME в ZTNAME и текстовую область HFTEXT в ZTTEXT.
(3) Пусть первая, вторая и третья строки таблицы zthb будут повторяющимися областями набора данных zthb, а затем вставьте навигацию по набору данных в четвертую строку таблицы.
(4) Вставьте LMID списка/меню, щелкните значение списка в окне его свойств и во всплывающем диалоговом окне значений списка введите метку проекта как: элемент дизайна: 1, нажмите «ОК». ключ, как показано на рисунке 7-26.
Рисунок 7-26 Диалоговое окно значений списка LMID
(5) Оставьте выбранным список/меню LMIDl, переключитесь на представление кода, найдите исходный код списка/меню LMID, перетащите поле LMID под меню набора данных и замените данные на значение, равное 1, как показано на рисунке 7-27.
Рисунок 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) Удалите поведение сервера «Вставить запись (dkconn, YH)» и добавьте набор данных yhsg, как показано на рис. 7-33.
Рисунок 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") < > Ничего), Request.Form("YHNAME"), "") %>' Type="Integer" />
Измените его на:
<Parameter Name="@YHID" Value='<%# IIf((Not Session( "USEID") ничего), Session("USEID"), "") %>' Type="Integer" />
(6) Сохраните yhsg.aspx.