Вы находитесь на странице: 1из 55

1

Chapter 34 - Case Study: Active Server


Pages and XML
Outline
34.1 Introduction
34.2 Setup and Message Forum Documents
34.3 Forum Navigation
34.4 Adding Forums
34.5 Forum XML Documents
34.6 Posting Messages
34.7 Other Documents
34.8 Web Resources

 2004 Prentice Hall, Inc. All rights reserved.


2

Objectives

• In this tutorial, you will learn:


– To create a Web-based message forum using Active Server
Pages.
– To use XML with Active Server Pages.
– To be able to add new forums.
– To be able to post messages to the message forum.
– To use Microsoft’s DOM to manipulate an XML document.
– To use XSLT to transform XML documents.

 2004 Prentice Hall, Inc. All rights reserved.


3

34.1 Introduction

• Message forums
– Popular internet feature
– Discuss topics
– Exchange information
– Several major sites provide this service
• messages.yahoo.com/index.html
• web.eesite.com/forums
• groups.google.com

 2004 Prentice Hall, Inc. All rights reserved.


4

34.2 Setup and Message Forum Documents

• Prerequisites
– Microsoft Internet Information Services 6 (IIS)
– Internet Explorer 6 (for XML and XSLT processing)
– MSXML 3.0 or higher
– Write permissions on forum folder

 2004 Prentice Hall, Inc. All rights reserved.


5

34.2 Setup and Message Forum Documents

File name Description


forums.xml XML document listing all available forums and
their filenames.
default.asp Main page, providing navigational links to the
forums.
template.xml Template for a message forum XML document.
addForum.asp Adds a forum.
forumASP.xml Sample message forum.
formatting.xsl Document for transforming message forums into
XHTML.
addPost.asp Adds a message to a forum.
invalid.html Used to display an error message.
site.css Style sheet for formatting XHTML documents.
style.css Style sheet for formatting the message forum site.
Fig. 34.1 Message forum documents.

 2004 Prentice Hall, Inc. All rights reserved.


6

34.3 Forum Navigation


Fig. 34.2 Key interactions between message forum documents.

default.asp forums.xml

addForum.asp

forumASP.xml

formatting.xsl

addPost.asp

 2004 Prentice Hall, Inc. All rights reserved.


7

34.2 Setup and Message Forum Documents

• Forum listing
– XML
– filename attribute

 2004 Prentice Hall, Inc. All rights reserved.


1 <?xml version = "1.0"?> 8
2
Outline
3 <!-- Fig. 34.3 : forums.xml -->
4 <!-- Creating the ASP forum -->
5 forums.xml
6 <forums> (1 of 1)
7
8 <forum filename = "forumASP.xml">ASP</forum>
9
10 </forums>

XML document that contains the


Name of forum. information for forum ASP.

 2004 Prentice Hall, Inc.


All rights reserved.
9

34.2 Setup and Message Forum Documents

• Presenting forum listing


– Convert to XHTML
– CSS for formatting
– ASP facilitates the conversion
• DOMDocument
• Async property
• DocumentElement
• ChildNodes
• For Each…Next control structure

 2004 Prentice Hall, Inc. All rights reserved.


1 <% @LANGUAGE = "VBScript" %> 10
2
Outline
3 <% ' Fig. 34.4 : default.asp
4 ' Forum home page
5 Option Explicit default.asp
6 %> (1 of 3)
7
8 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
9
Link to CSS style sheet style.css.
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
10
11 <html xmlns = "http://www.w3.org/1999/xhtml">
12
13 <head>
14 <title>Deitel Message Forums</title>
15 <link rel = "stylesheet" type = "text/css"
16 href = "style.css" />
17 </head>
18
19 <body>
20 <h1>Deitel Message Forums</h1>
21 <p><strong>Available Forums</strong></p>
22 <ul>

 2004 Prentice Hall, Inc.


All rights reserved.
23 <%
11
24 Dim xmlFile, xmlNodes, xmlItem
Instantiate an XML DOM object. Outline
25
Setting Async
Dim strPath, strTitle, strFileName False causes the object referenced by xmlFile
to Load
Method parses the XML document forums.xml.
26
to behave synchronously.
27 strPath = Server.MapPath(
If the"forums.xml" default.asp
parsing fails,) the browser is redirected to invalid.html .
28 (2 of 3)
29 Set xmlFile = Server.CreateObject( "Microsoft.XMLDOM" )
30 xmlFile.Async = False
31
32 If Not xmlFile.Load( strPath ) Then
33 Call Server.Transfer( "invalid.html" )
34 End If
35
36 Set xmlNodes = xmlFile.DocumentElement.ChildNodes
37
38 For Each xmlItem In xmlNodes
39 strFileName = xmlItem.getAttribute( "filename" )
40 Property= DocumentElement
strTitle xmlItem.text gets the root element’s child nodes.
41 %>
42 <li> Property ChildNodes returns a collection of the
43 <a href = "<% element
=strFileName node’s
%>"><% child nodes.
=strTitle %></a>
44 </li>
45 <%
Method getAttribute gets a forum’s filename.
46 Next
47 %>
48 </ul> The anchor element creates a link to the available forums.

 2004 Prentice Hall, Inc.


All rights reserved.
49
12
50 <p><strong>Forum Management</strong></p> Outline
51
52 <ul>
53 <li><a href = "addForum.asp">Add a Forum</a></li> default.asp
54 <li>Delete a Forum</li> (3 of 3)
55 </ul>
56
57 </body> This anchor element links to the ASP document
58 addForum.asp that allows the user to create a
59 </html> new forum.

 2004 Prentice Hall, Inc.


All rights reserved.
13

34.3 Forum Navigation


Fig. 34.4 Message forums main page.

 2004 Prentice Hall, Inc. All rights reserved.


14

34.3 Adding Forums

• Template forum
– Bare minimum elements of forum
– stylesheet tag for formatting
– forum tag

 2004 Prentice Hall, Inc. All rights reserved.


1 <?xml version = "1.0"?> 15
2
Outline
3 <!-- Fig. 34.5 : template.xml -->
4 <!-- Template XML document -->
5 template.xml
6 <?xml:stylesheet type = "text/xsl" href = "formatting.xsl"?>
7
8 <forum>
9 </forum>

The stylesheet processing instruction


references formatting.xsl.

 2004 Prentice Hall, Inc.


All rights reserved.
16

34.3 Adding Forums

• Generating forum from template


– Form to get information on new forum
• Name and file name
• User name
• Message title and text
– Script to act on form input
• Confirm valid input
• SetAttribute
– filename
– timestamp
• CreateElement
• AppendChild
• Save

 2004 Prentice Hall, Inc. All rights reserved.


1 <% @LANGUAGE = "VBScript" %> 17
2 <% Option Explicit %> Outline
3
4 <% ' Fig. 34.6 : addForum.asp %>
Check to see if a value was entered in
5 each of the form fields. addForum.asp
Test to see if the form was submitted by testing the form’s
6 <% submit field for a value. (1 of 7)
7 Dim xmlFile, xmlRoot, xmlNode
8 Dim strTitle, strError, strPath
9
10 If Request( "submit" ) <> Empty Then
11
12 If Request( "name" ) <> Empty And _
13 Request( "filename" ) <> Empty And _
14 Request( "user" ) <> Empty And _
15 Request( "title" ) <> Empty And _
16 Request( "text" ) <> Empty Then
17
18 ' Create a new XML file
19 strPath = Server.MapPath( Request( "filename" ) )
20
21 Set xmlFile = Server.CreateObject( "Microsoft.XMLDOM" )
22 xmlFile.Async = False
23

 2004 Prentice Hall, Inc.


All rights reserved.
24 If xmlFile.Load( strPath ) Then 18
25 Call Server.Transfer( "invalid.html" ) Outline
26 End If
27
28 ' set up the file addForum.asp
Method Load loads the template XML document.
29 Call xmlFile.Load( Server.MapPath( "template.xml" ) ) (2 of 7)
30
31 ' get the root element
32 Set xmlRoot = xmlFile.DocumentElement
33
34 ' set the filename
35 Call xmlRoot.SetAttribute( "filename", _
36 Request( "filename" ) )
37
38 ' create Name node
39 Set xmlNode = xmlFile.CreateElement( "name" )
40 Method setAttribute creates an attribute node
xmlNode.Text = Request( "name" )
41 Call
named filename that has the value contained in
xmlRoot.AppendChild( xmlNode )
42 form field filename.
43 ' create first message
44 Set xmlNode = xmlFile.CreateElement( "message" )
45 Call xmlNode.SetAttribute( "timestamp", Now & " EST" )
46 Call xmlRoot.AppendChild( xmlNode )
47
48 Set xmlRoot = xmlNode
Method AppendChild appends the newly created
element name node to the root element.
 2004 Prentice Hall, Inc.
All rights reserved.
49
19
50 ' create user node Outline
51 Set xmlNode = xmlFile.CreateElement( "user" )
52 xmlNode.Text = Request( "user" )
53 Call xmlRoot.AppendChild( xmlNode ) addForum.asp
54 (3 of 7)
55 ' create title node
56 Set xmlNode = xmlFile.CreateElement( "title" )
57 xmlNode.Text = Request( "title" )
58 Call xmlRoot.AppendChild( xmlNode )
59
60 ' create text node
Calling method Save saves the
61 Set xmlNode = xmlFile.CreateElement( "text" )
XML document to disk.
62 xmlNode.Text = Request( "text" )
63 Call xmlRoot.AppendChild( xmlNode )
64
65 Call xmlFile.Save( strPath ) ' save the file
66
67 ' load XML file
68 strPath = Server.MapPath( "forums.xml" )
69
70 Set xmlFile = Server.CreateObject( "Microsoft.XMLDOM" )
71 xmlFile.Async = False Open XML document forums.xml.
72

 2004 Prentice Hall, Inc.


All rights reserved.
73 If Not xmlFile.Load( strPath ) Then
20
74 Call Server.Transfer( "invalid.html" ) Outline
75 End If
76
77 ' get the root node addForum.asp
78 Set xmlRoot = xmlFile.DocumentElement (4 of 7)
79
80 ' create nodes
81 Set xmlNode = xmlFile.CreateElement( "forum" )
82 Call xmlNode.SetAttribute( "filename", _
83 Request( "filename" ) ) Modify forums.xml.
84 xmlNode.Text = Request( "name" )
85 Call xmlRoot.AppendChild( xmlNode )
86
87 Call xmlFile.Save( strPath ) ' save the file
88
89 ' finished processing
90 Call Server.Transfer( "default.asp" )
91 Else
92 strError = "ERROR: Invalid input."
93 End If
Save forums.xml with its new contents to
94 disk.
95 End If
96 %>
97

 2004 Prentice Hall, Inc.


All rights reserved.
98 <!DOCTYPE html
21
99 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" Outline
100 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
101
102 <html xmlns = "http://www.w3.org/1999/xhtml"> addForum.asp
103 <head> (5 of 7)
104 <title>Add a Forum</title>
105 <link rel = "stylesheet" type = "text/css" href = "style.css" />
106 </head>
This XHTML form allows a user to input the
107
name, filename, a user name, a message title and
108 <body>
the message text to create a new forum.
109 <p>Create a Forum</p>
110 <p><% =strError %></p>
111
112 <form method = "post" action = "addForum.asp">
113
114 <h2>
115 Forum Name:<br />
116 <input type = "text" size = "40" name = "name"
117 value = "<% =Request( "name" ) %>" />
118 </h2>
119
120 <h2>
121 Forum File Name:<br />
122 <input type = "text" size = "40" name = "filename"
123 value = "<% =Request( "filename" ) %>" />

 2004 Prentice Hall, Inc.


All rights reserved.
124 </h2> 22
125
Outline
126 <h2>
127 User:<br />
128 <input type = "text" size = "40" name = "user" addForum.asp
129 value = "<% =Request( "user" ) %>" /> (6 of 7)
130 </h2>
131
132 <h2>
133 Message Title:<br />
134 <input type = "text" size = "40" name = "title"
135 value = "<% =Request( "title" ) %>" />
136 </h2>
137
138 <h2>
139 Message Text:<br />
140 <textarea name = "text" cols = "40"
141 rows = "4"><% =Request( "text" ) %></textarea>
142 </h2>
143

 2004 Prentice Hall, Inc.


All rights reserved.
144 <h2>
23
145 <input type = "submit" name = "submit" value = "Submit" /> Outline
146 <input type = "reset" value = "Clear" />
147 </h2>
148 addForum.asp
149 </form> The Submit button submits the form and the (7 of 7)
150 values input in the form fields.
151 <p>
152 ThetoClear
<a href = "default.asp">Return Main button will
Page</a> delete all values in the form
153 </p> fields.
154
155 </body>
156
157 </html>

 2004 Prentice Hall, Inc.


All rights reserved.
24

34.3 Adding Forums


Fig. 34.6 Page to add a forum.

 2004 Prentice Hall, Inc. All rights reserved.


25

34.5 Forum XML Documents

• Sample forum
– XML modified with several forums added
– XSLT used to transform XML
– Final XHTML page served to Internet Explorer

 2004 Prentice Hall, Inc. All rights reserved.


1 <?xml version = "1.0"?> 26
2
Outline
3 <!-- Fig. 34.7 : forumASP.xml -->
4 <!-- Postings on ASP forum -->
5 forumASP.xml
6 <?xml:stylesheetThe name
type of the forum.
= "text/xsl" href = "formatting.xsl"?> (1 of 2)
7
8
Each message
<forum filename = "forumASP.xml"> element and its children contain
9
the information for a post.
10 <name>ASP Forum</name>
11
12 <message timestamp = "4/28/2001 2:50:34 PM EST">
13 <user>D. Bug</user>
14 <title>I Love ASP!</title>
15 <text>Everyone should use ASP.</text>
16 </message>
17

 2004 Prentice Hall, Inc.


All rights reserved.
18 <message timestamp = "5/8/2001 11:09:54 AM EST"> 27
19 <user>Ms. Quito</user> Outline
20 <title>ASP and XML</title>
21 <text>What a powerful combination. Try it!</text>
22 </message> forumASP.xml
23 (2 of 2)
24 <message timestamp = "5/15/2001 4:39:50 PM EST">
25 <user>Sarge Ant</user>
26 <title>ASP</title>
27 <text>This <em>army ant</em> uses ASP in boot camp.</text>
28 </message>
29
30 </forum>

 2004 Prentice Hall, Inc.


All rights reserved.
1 <?xml version = "1.0"?> 28
2
Outline
3 Attribute
Element
<!-- Fig. 34.8 : formatting.xsl
version specifies
xsl:stylesheet the XSLT version to
is the
--> XSLT
4 which thisXML
<!-- XSL document thatdocument’s
transforms style
root sheet
element.
data conforms.
to XHTML -->
5 Attribute omit-xml- formatting.xsl
The xsl:output
declaration is assigned no, element specifies how the result
6 <xsl:stylesheet version = "1.0" (1 of 4)
tree is output.
which results in an XML
Attribute method is assigned html, which specifies that
7 xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
8 declaration in the an
result tree. document is being output.
XHTML
9 <xsl:output method = "html" omit-xml-declaration = "no"
10 doctype-system =
11 Select the template that matches the XML document root
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
12 doctype-public =
(/).
"-//W3C//DTD XHTML 1.0 Strict//EN" />
13 The asterisk
The attribute selects element nodes.
xmlns creates a namespace
14 <xsl:template match = "/"> prefix xsl.
15
16 <html xmlns = "http://www.w3.org/1999/xhtml">
17 <xsl:apply-templates select = "*" />
18 </html>
19
20 </xsl:template>
21
22 <xsl:template match = "forum">
23

 2004 Prentice Hall, Inc.


All rights reserved.
24 <head> 29
25 <title><xsl:value-of select = "name"/></title> Outline
26 <link rel = "stylesheet" type = "text/css"
27 href = "style.css" />
Link to the CSS style sheet style.css.
28 </head> formatting.xsl
29 (2 of 4)
30 <body>
31
32 <table width = "100%" cellspacing = "0"
33 cellpadding = "2">
34 <tr>
35 <td class = "forumTitle">
36 <xsl:value-of select = "name" />
37 </td>
38 </tr> Get value of name element.
39 </table>
40
41 <table width = "100%" cellspacing = "0"
42 cellpadding = "2">
43 <xsl:apply-templates
44 select = "message" />
45 </table>
46
Apply message template.

 2004 Prentice Hall, Inc.


All rights reserved.
47 <p> 30
48 <a> Outline
49 <xsl:attribute
50 name = "href">addPost.asp?file=<xsl:value-of
51 select = "@filename" /> formatting.xsl
52 </xsl:attribute> (3 of 4)
53 Post a Message</a><br /> Get the value of attribute filename.
54 <a href = "default.asp">Return to Main Page</a>
55 </p>
56
57 </body>
58 Begin template message.
59 </xsl:template>
60
61 <xsl:template match = "message">
62
63 <tr>
64 <td class = "msgTitle">
65 <xsl:value-of select = "title" />
66 </td>
67 </tr>
68
69 <tr> Get value of user element.
70 <td class = "msgInfo">
71 by
72 <em><xsl:value-of select = "user" /></em>

 2004 Prentice Hall, Inc.


All rights reserved.
73 at 31
74 <span class = "date"> Outline
75 <xsl:value-of select = "@timestamp" />
76 </span>
77 </td> formatting.xsl
78 </tr> Get value of attribute timestamp
(4 of 4) .
79
80 <tr>
81 <td class = "msgText">
82 <xsl:value-of select = "text" />
83 </td>
84 </tr>
85
86
Get value of text element.
87 </xsl:template>
88
89 </xsl:stylesheet>

 2004 Prentice Hall, Inc.


All rights reserved.
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 32
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Outline
3
4 <!-- Fig. 34.9 : forumASP_transformed.html -->
5 <!-- Results of transforming forumASP.xml --> forumASP_transformed
6 .html
7 <html xmlns = "http://www.w3.org/1999/xhtml">
(1 of 3)
8
9 <head>
10 <title>ASP Forum</title>
11 Forum/>
<link href = "site.css" type = "text/css" rel = "stylesheet" title.
12 </head>
13
14 <body>
15 <table cellpadding = "2" cellspacing = "0" width = "100%">
16 <tr>
17 <td class = "forumTitle">ASP Forum</td> Message title.
18 </tr>
19 </table>
20
21 <table cellpadding = "2" cellspacing = "0" width = "100%">
22 <tr>
23 <td class = "msgTitle">I Love ASP!</td>
24 </tr>

 2004 Prentice Hall, Inc.


All rights reserved.
25 <tr> 33
26 <td class = "msgInfo"> Outline
27 by Time and date posted.
28 <em>D. Bug</em>
29 at forumASP_transformed
30 <span class = "date">4/28/2001 2:50:34 PM EST</span></td>
.html
31 </tr>
(2 of 3)
32 <tr>
33 <td class = "msgText">Everyone should use ASP.</td>
34 </tr>
35 <tr>
36 <td class = "msgTitle">ASP and XML</td>
37 </tr>
38 <tr> Message text.
39 <td class = "msgInfo">
Message author.
40 by
41 <em>Ms. Quito</em>
42 at
43 <span class = "date">5/8/2001 11:09:54 AM EST</span></td>
44 </tr>
45 <tr>
46 <td class = "msgText">
47 What a powerful combination. Try it!</td>
48 </tr>

 2004 Prentice Hall, Inc.


All rights reserved.
49 <tr>
34
50 <td class = "msgTitle">ASP</td> Outline
51 </tr>
52 <tr>
53 <td class = "msgInfo"> forumASP_transformed
54 by .html
55 <em>Sarge Ant</em> (3 of 3)
56 at
57 <span class = "date">5/15/2001 4:39:50 PM EST</span></td>
58 </tr>
59 <tr>
60 <td class = "msgText">
61 This army ant uses ASP in boot camp.</td>
62 </tr>
63 </table>
64
65 <p>
66 <a href = "addPost.asp?file=forumASP.xml">Post a Message</a>
67 <br>
68 <a href = "default.asp">Return to Main Page</a>
69 </p>
70
71 </body> Link to add a new post.
72
73 </html>

 2004 Prentice Hall, Inc.


All rights reserved.
35

34.5 Forum XML Documents


Fig. 34.9 Output of the transformation of the forum XML document.

 2004 Prentice Hall, Inc. All rights reserved.


36

34.6 Posting Messages

• Posting a message
– Procedure similar to creating new forum

 2004 Prentice Hall, Inc. All rights reserved.


1 <% @LANGUAGE = "VBScript" %> 37
2
Outline
3 <% ' Fig. 34.10 : addPost.asp
4 ' ASP document for posting a message
5 Check to see if a value was entered in addPost.asp
6 Option
each of the form fields.
ExplicitTest to see if the form was submitted by testing the form’s (1 of 5)
7 submit field for a value.
8 Dim xmlFile, xmlRoot, xmlNode
9 Dim strTitle, strError, strPath
10
11 If Request( "submit" ) <> Empty Then
12
13 If Request( "file" ) <> Empty And _
14 Method Load loads the forum XML document.
Request( "userName" ) <> Empty And _
15 Request( "messageTitle" ) <> Empty And _
16 Request( "messageText" ) <> Empty Then
17
18 strPath = Server.MapPath( Request( "file" ) )
19
20 Set xmlFile = Server.CreateObject( "Microsoft.XMLDOM" )
21 xmlFile.Async = False
22
23 If Not xmlFile.Load( strPath ) Then
24 Call Server.Transfer( "invalid.html" )
25 End If

 2004 Prentice Hall, Inc.


All rights reserved.
26
38
27 ' get the root node Outline
28 Set xmlRoot = xmlFile.DocumentElement
29
30 ' create first message addPost.asp
31 Set xmlNode = xmlFile.CreateElement( "message" ) Create a message
(2 ofnode.
5)
32 Call xmlNode.SetAttribute( "timestamp", Now & " EST" )
33 Call xmlRoot.AppendChild( xmlNode )
34 Create a timeStamp attribute for the
35 Set xmlRoot = xmlNode message node.
36
37 ' create user node
38 Call CreateElementNode( "user", "userName", xmlNode )
39
40 ' create title node
41 Call CreateElementNode( "title", "messageTitle", xmlNode )
42
43 ' create text node
44 Call CreateElementNode( "text", "messageText", xmlNode )
45
46 Call xmlFile.Save( strPath ) ' save the file
47 Create the children of the message
48 ' finished processing
node: user, title and text.
49 Call Server.Transfer( Request( "file" ) )

 2004 Prentice Hall, Inc.


All rights reserved.
50 Else 39
51 strError = "ERROR: Invalid input." Outline
52 End If
53
54 End If addPost.asp
55 (3 of 5)
56 ' procedure that creates an element node
57 Sub CreateElementNode( elementName, formElement, node )
58 Set xmlNode = xmlFile.CreateElement( elementName )
59 xmlNode.Text = Request( formElement )
60 Call xmlRoot.AppendChild( node )
61 End Sub
62 %>
63
64 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
65 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
66
67 <html xmlns = "http://www.w3.org/1999/xhtml">
68 <head>
69 <title>Post a Message</title>
70 <link rel = "stylesheet" type = "text/css"
71 href = "style.css" />
72 </head>
73

 2004 Prentice Hall, Inc.


All rights reserved.
74 <body> 40
75 <p><% =strError %></p> Outline
76
77 <form method = "post" action =This form allows
"addPost.asp"> the user to create a post by
78 <p> entering the values into the form fields. addPost.asp
79 User:<br /> (4 of 5)
80 <input type = "text" size = "40" name = "userName"
81 value = "<% =Request( "userName" ) %>" />
82 </p>
83
84 <p>
85 Message Title:<br />
86 <input type = "text" size = "40" name = "messageTitle"
87 value = "<% =Request( "messageTitle" ) %>" />
88 </p>
89
90 <p>
91 Message Text:<br />
92 <textarea name = "messageText" cols = "40"
93 rows = "4"><% =Request( "messageText" ) %>
94 </textarea>
95 </p>
96

 2004 Prentice Hall, Inc.


All rights reserved.
97 <p> 41
98 <input type = "hidden" name = "file" Outline
99 value = "<% =Request( "file" ) %>"/>
100 <input type = "submit" name = "submit" value = "Submit" />
101 <input type = "reset" value = "Clear" /> addPost.asp
102 </p> (5 of 5)
103 </form>
104
105 <p>
106 <a href = "<% =Request( "file" ) %>">Return to Forum</a>
107 </p>
108 </body>
109
110 </html>

 2004 Prentice Hall, Inc.


All rights reserved.
42

34.6 Posting Messages


Fig. 34.10 Adding a message to a forum.

 2004 Prentice Hall, Inc. All rights reserved.


43

34.6 Posting Messages


Fig. 34.11 New forum on the message board.

 2004 Prentice Hall, Inc. All rights reserved.


44

34.6 Posting Messages


Fig. 34.12 Initial content of the newly added forum.

 2004 Prentice Hall, Inc. All rights reserved.


45

34.6 Posting Messages


Fig. 34.13 Contents of the Internet and World Wide Web: Third Edition forum.

 2004 Prentice Hall, Inc. All rights reserved.


46

34.7 Other Documents

• Other documents required by forum


– Error page
– CSS for formatting
• XHTML
• Forums

 2004 Prentice Hall, Inc. All rights reserved.


1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 47
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Outline
3
4 <!-- Fig. 34.14 : invalid.html -->
5 <!-- XHTML document for displaying errors --> invalid.html
6 (1 of 1)
7 <html xmlns = "http://www.w3.org/1999/xhtml">
8
Link that references CSS style sheet site.css.
9 <head>
10 <title>Deitel Book Organization</title>
11 <link rel = "stylesheet" type = "text/css"
12 href = "site.css" />
13 </head>
14
15 <body>
16 <h1>Invalid Request.</h1>
17
18 <p><a href = "default.asp">Return to Main Page</a></p>
19 </body>
20
21 </html>

 2004 Prentice Hall, Inc.


All rights reserved.
1 /* Fig. 34.15 : site.css */ 48
2 /* Stylesheet for XHTML documents */ Outline
3
4 body
5 { Define styles for the body element. site.css
6 background: white; (1 of 3)
7 color: black;
8 font-family: Arial, sans-serif;
9 font-size: 10pt;
10 }
11
12 a
13 { Define styles for the anchor element.
14 background: transparent;
15 color: blue;
16 text-decoration: none;
17 }
18
19 a:hover
20 { Define styles for the table element.
21 text-decoration: underline;
22 }
23

 2004 Prentice Hall, Inc.


All rights reserved.
24 table
49
25 {
Outline
26 border-width: 1px;
27 border-style: solid;
28 } site.css
29 (2 of 3)
30 .forumTitle
31 {
32 background: lime;
33 color: black;
34 font-size: 12pt;
35 font-weight: bold;
36 text-align: center;
37 }
38
39 .msgTitle
40 {
41 background: silver;
42 color: black;
43 font-size: 10pt;
44 font-weight: bold;
45 }
46

 2004 Prentice Hall, Inc.


All rights reserved.
47 .msgInfo
50
48 {
Outline
49 background: silver;
50 color: black;
51 font-size: 10pt; site.css
52 } (3 of 3)
53
54 .msgPost
55 {
56 background: silver;
57 color: black;
58 font-size: 8pt;
59 }
60
61 .msgText
62 {
63 font-size: 10pt;
64 padding-left: 10px;
65 }
66
67 .date
68 {
69 font-size: 8pt;
70 }

 2004 Prentice Hall, Inc.


All rights reserved.
1 /* Fig. 34.16 : style.css */ 51
2 /* Stylesheet for forums */ Outline
3
4 h1
5 {
Define styles for the h1 element. style.css
6 color: #330099; (1 of 5)
7 letter-spacing: 2px;
8 font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
9 background-color: transparent;
10 }
11
12 h2
13 { Define styles for the h2 element.
14 color: #6633FF;
15 font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
16 font-size: small;
17 background-color: transparent;
18 }
19
20 p
21 { Define styles for the p element.
22 font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
23 color: #336666;
24 letter-spacing: 1px;
25 font-size: larger;

 2004 Prentice Hall, Inc.


All rights reserved.
26 font-weight: bold; 52
27 background-color: transparent; Outline
28 }
29
30 body style.css
31 { Define styles for the body element. (2 of 5)
32 background-image: url(bug2.gif);
33 background-repeat: no-repeat;
34 margin-top: 5%;
35 background-position: 25%;
36 margin-left: 10%;
37 }
38
39 li
40 { Define styles for the li element.
41 font-family: "Courier New", Courier, monospace;
42 font-weight: bolder;
43 list-style-type: circle;
44 color: #3333FF;
45 background-color: transparent;
46 }
47

 2004 Prentice Hall, Inc.


All rights reserved.
48 input
53
49 {
Define styles for the input element. Outline
50 background-color: transparent;
51 color: #336666;
52 font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; style.css
53 } (3 of 5)
54
55 textarea
56 { Define styles for the textarea element.
57 background-color: transparent;
58 color: #336666;
59 font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
60 }
61
62 .forumTitle
63 {
64 color: #FFFFCC;
65 font-size: 14pt;
66 font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
67 text-align: center;
68 background-color: #6666CC;
69 }
70

 2004 Prentice Hall, Inc.


All rights reserved.
71 .msgTitle
54
72 {
Outline
73 background: #FFFFCC;
74 color: black;
75 font-size: 10pt; style.css
76 font-weight: bold; (4 of 5)
77 }
78
79 .msgInfo
80 {
81 background: #FFFFCC;
82 color: black;
83 font-size: 10pt;
84 }
85
86 .msgPost
87 {
88 background: silver;
89 color: black;
90 font-size: 8pt;
91 }
92

 2004 Prentice Hall, Inc.


All rights reserved.
93 .msgText
55
94 {
Outline
95 font-size: 10pt;
96 padding-left: 10px;
97 } style.css
98 (5 of 5)
99 .date
100 {
101 font-size: 8pt;
102 }

 2004 Prentice Hall, Inc.


All rights reserved.

Вам также может понравиться