Home > Store

Essential ASP for Web Professionals

Register your product to gain access to bonus material or receive a coupon.

Essential ASP for Web Professionals


  • Sorry, this book is no longer in print.
Not for Sale


  • Copyright 2001
  • Edition: 1st
  • Book
  • ISBN-10: 0-13-030499-9
  • ISBN-13: 978-0-13-030499-5

  • Get results from ASP with server-side JavaScript-today!
  • Learn from practical real-world examples with downloadable reusable code
  • Key techniques-quick, clear, and handy!
  • Build shopping carts, guest books, and other applications
  • Database integration, e-mail processing, and much more

This compact, example-rich guide teaches Web developers exactly what they need to know to build great dynamic sites and applications with Microsoft's ASP and JavaScript, the world's #1 Web scripting language. Endorsed by the World Organization of Webmasters, Essential ASP for Web Professionals offers no-nonsense, practical coverage built around real-world examples on a live sample Web site. Every chapter includes real-world overviews of key ASP and JavaScript features, reinforcing what you've learned and demonstrating how to adapt it quickly to your own applications. From the basics of embedding ASP code in HTML pages to full-blown database application development, this book delivers practical answers, usable code, and real solutions—fast!

Use ASP and JavaScript to do all this, and more!

  • Deliver dynamic content on any Web or intranet site
  • Create database applications that publish content and enable users to edit it
  • Build shopping carts, guest books, and other applications
  • Send e-mail automatically from your Web pages
  • Embed dates and other variable data in your pages
  • Request and check user passwords

Look to Essential Books for ALL the Web Skills You Need!

All these books share the same great format and similar Web sites containing downloadable code-so once you've used one, learning from the others is a piece of cake!

  • Essential CSS and DHTML for Web Programmers
  • Essential Flash 4 for Web Programmers
  • Essential Perl 5 for Web Professionals
  • Essential Photoshop for Web Designers
  • Essential JavaScript for Web Programmers
  • Essential PHP for Web Professionals
  • Essential Flash 5 for Web Professionals, Essential Design for Web Professionals, and more coming soon!


Source Code

Untitled Document Chapter 1 – Keeping Time

Download code for Project 1 (Zipped ASP file)
Download code for Project 2 (Zipped ASP file)

Who knew adding the date to a web page could be so fun? Time just flies when you're learning the basics of creating ASP pages with a couple of suitably trivial examples.

Project 1:
A Simple Date Script

In which ASP uses funny looking "<% … %>" tags to insert code into a perfectly good web page.

Project 2:
A More Powerful Date Script

Things heat up with a script that is more than one line long, an introduction to JavaScript data types, and other basics.

Chapter 2 – Reading and Writing

Download code for Project 1 (Zip archive)
Download code for Project 2 (Zip archive)

A couple of projects that involve reading from and writing to text files stored on the web server's hard drive.

Project 1:
Add Data from a Text File to a Web Page

A "tip of the day" script. Information is drawn from a text file into a text page. This is about the easiest content management system you can build — or use, for that matter. (See Chapter 4 for a more complicated content management system.)

Project 2:
Writing Form Data to a Text File

Maybe I should have called this project "Guest Book Script." Well, with the book at the printer, too late for that. That's what Project 2 is, though, with information being submitted by visitors to your site and stored in a text file on the server.

Chapter 3 – Database-Driven Pages

Download code for the project (Zip archive)

Using a database that stores very simple directory information about people, events, and web sites, the chapter presents a set of scripts that allow you to publish and navigate the contents of the database.

Generating Web Pages From a Database

ASP provides a very nice way to get information out of a database and onto a web page. Open database connections! Create recordsets! What are you waiting for … go buy this book!

Chapter 4 – Editing Records Download code for the project (Zip archive)

Using the same database as Chapter 3, this time the scripts get a little more complicated and create a password protected interface that can be used to edit the contents of the database.

Using a Web Interface to Edit Records in a Database

Rather dry project name notwithstanding, this chapter has some nice stuff in it, such as code that automatically iterates through incoming form information and stuffs it into a database — without knowing what the field names are beforehand. If you haven't had to deal with this before, it's a nice trick when you add or remove fields to or from the database later. A long chapter with a lot of code.

Chapter 5 – Shopping Cart Download code for the project (Zip archive)

If you're building Web sites, someone will eventually want you to build a shopping cart for their site. Presented here for your reading and coding pleasure, one way to solve that problem.

Building a Shopping Cart

A simple yet comprehensive set of cart scripts with the usual feature set: display the stuff that's for sale, including support for multiple options; search for stuff by category and keyword; add stuff to the cart, edit quantity, or remove items; and collect shipping and billing information.

Chapter 6 – Email Download code for the project (Zip archive)

Sending email from a web page is easy. This is a short chapter. What more could you ask for?

Simple Email Script

Using the CDONTS object, learn to send email in as few as two lines of code. Scripts that are actually useful with less than 20 lines of code.

Support File(s)

Untitled Document Download the Advanced Projects file

Sample Content

Online Sample Chapter

Keeping Time with ASP

Downloadable Sample Chapter

Click here for a sample chapter for this book: 0130304999.pdf

Table of Contents

1. Keeping Time.

Project I: A Simple Date Script. New Features. Script 1-1 date_simple.asp. Project II: A More Powerful Date Script. New Features. Script 1-2 date_fancy.asp.

2. Reading and Writing.

Project I: Add Data from a Text File to a Web Page. New Features. Code for Tip of the Day. Script 2-1-1 tips.txt. Script 2-1-2 tip_of_the_day.asp. Project II: Writing Form Data to a Text File. New Features. Script 2-2 guest_book.asp.

3. Database-Driven Pages.

Project: Generating Web Pages from a Database. New Features. Code for View Database Scripts. Script 3-1 ch3_include.js. Script 3-2 ch3_view_categories.asp. Script 3-3 ch3_view_records.asp.

4. Editing Records.

Project: Using a Web Interface to Edit Records in a Database. New Features. Code to Edit Database. Script 4-1 ch4_password_form.asp. How the Script Works. Script 4-2 ch4_include.js. Script 4-3 ch4_list_categories.asp. Script 4-4 ch4_edit_category_form.asp. Script 4-5 ch4_update_category.asp. Script 4-6 ch4_delete_category.asp. Script 4-7 ch4_blank_category_form.asp. Script 4-8 ch4_insert_category.asp. Script 4-9 ch4_list_records.asp. Script 4-10 ch4_edit_record_form.asp. Script 4-11 ch4_update_record.asp. Script 4-12 ch4_delete_record.asp. Script 4-13 ch4_blank_record_form.asp. Script 4-14 ch4_insert_record.asp. Script 4-15 ch4_edit_subcategory_form.asp. Script 4-16 ch4_insert_subcategory.asp. Script 4-17 ch4_delete_subcategory.asp.

5. Shopping Cart.

Project: Building a Shopping Cart. Security. A Quick Tour. New Features. The ASP Shopping Cart Code. Script 5-1 cart_list_items_for_sale.asp. Script 5-2 cart_set_session.asp. Script 5-3 cart_view_contents.asp. Script 5-4 cart_change_qty.asp. Script 5-5 cart_remove_all.asp. Script 5-6 collect_shipping_information.asp. Script 5-7 set_shipping_information.asp. Script 5-8 collect_billing_information.asp. Script 5-9 set_cc_billing_information.asp. Script 5-10 set_pwc_billing_information.asp. Script 5-11 order_complete.asp. Script 5-12 cart.js. Script 5-13 view_session_contents.asp.

6. Email.

Project: Simple Email Script. New Features. Code. Script 6-1 form.asp. Script 6-2 catch_form.asp.

Appendix A: JavaScript Cheat Sheet.

Appendix B: Server Configuration.




Welcome to the book.

This is an ASP cookbook. Each chapter contains one or more recipes that work together in a useful way. Briefly:

  • Chapter 1 is basically a tutorial, with a couple of very simple scripts that add dates to HTML pages.
  • Chapter 2 has two recipes: a tip-of-the-day application (a quick and dirty way to add dynamic content to a Web page) and a guest book.
  • Chapter 3 has a complicated recipe for publishing the contents of a database onto a Web site.
  • Chapter 4 has a more complicated recipe that creates a Web site that lets you edit the database.
  • Chapter 5 has a recipe for a shopping cart. It's the most complicated recipe in this book and the one that's most likely to make you some bucks.
  • Chapter 6 gets simple again with a recipe for e-mail.

All of these recipes rely on Active Server Pages (ASP) and JavaScript, which is mostly what this introduction is about.

Before Active Server Pages

Tim Berners-Lee started things off with a great way to publish documents called HTML, which is a wonderful way to publish static documents.

Pretty quickly thereafter, something called CGI was added to Web servers to let programmers generate HTML pages on the fly. With CGI, when the Web server gets a request for page, it starts a program and hands the request to the program. If the program generates any output, that output is returned to the browser.

CGI is a pretty great way to do a lot of things, but it's a very program-ish solution, which is to say it's not very HTML-ish. When you look at a CGI program, most of the time, it doesn't look much like an HTML page, even though that's usually the end result. And if there's a lot of HTML in the program, a lot of the time it has to be carefully wrapped in quotes to separate the program parts from the HTML parts, which can get tiring.

Too Many CGI Scripts in the Kitchen

Then there's the performance issues: Most CGI programs are written using scripting languages like Perl, which is ideally suited for this kind of thing.

The problem with this is that every time a Web browser asks for a Web page that's generated by a CGI program, a new process is launched on the server. Launching new processes is kind of slow and takes up a lot of resources. Programs with too many simultaneous CGI programs can get very bogged down.

There are, of course, ways around this, but they involve doing fancy technical things that are a lot harder than writing Perl scripts.

So it became clear that there needed to be an easier way to generate dynamic Web pages.

Mixing HTML and Scripts in One Place

The solution that has emerged to the HTML vs. CGI debate is to do both. Increasingly, Web servers are getting smarter, so that it's possible to drop little program snippets inside of Web pages instead of having to maintain programs and HTML separately.

This isn't the end-all, be-all for the Web. Small sites that don't need dynamic content should still be created with HTML.

Very large sites with millions of pages and complicated applications need to be built using complicated publishing systems and application servers.

But for a lot of things, being able to mix HTML and programming is an excellent solution. And that's what ASP is all about.

ASP is probably the best way to mix HTML and simple programming in a Windows environment. ASP pages can also be hosted on a UNIX server, using software from ChiliSoft. But most people use ASP with Windows NT and Windows 2000, because it's built into IIS, it's easy to use, and it's powerful.

ASP is not the only game in town. Other products that let you mix HTML and programming include PHP, Cold Fusion, and JSP. But if you're interested in building dynamic product on the Windows platform, you'll find that ASP is often the first choice for developing dynamic Web sites.

How to Add ASP Code to an HTML Page

If you're comfortable with HTML source code, adding ASP to your arsenal will feel like the logical next step.


This book assumes that you are comfortable with HMTL source code. If you are not familiar with HTML source code, you will want to get a good HTML book to refer to while you work with this book.

Let's start with a real simple HTML page called hello_world.html:

<html><head><title>Hello World</title></head><body>Hello World</body></html>

If your Web server is IIS (you need IIS or a Web server that supports Active Server Pages for this to work), you can take this file and rename it hello_world.asp:

<%@ Language=JavaScript %><html><head><title>Hello World</title></head><body><% Response.Write("Hello World") %></body></html>

Three things have changed:

  1. Instead of ending with .html, the file now ends with .asp. This tells the Web server that there may be some code on the page. Instead of just giving the page to a Web browser when someone types in the URL of the page, the Web server checks the page for <% ... %> tags first. If it finds any, it removes the tags and their contents, and replaces them with the output of any program that is inside of them.
  2. The first piece of code that the Web server finds is <%@ Language=JavaScript %>. This tells the Web server that the programming language is JavaScript. Because IIS, the Microsoft Web server, often assumes that ASP programs will be written in VBScript, it's always a good idea to tell IIS if you're using JavaScript.
  3. The next piece of code that the server finds (remember that it's looking for <% ... %> tags) is the line <% Response.Write("Hello World") %>. The Response.Write() command is a lot like the print() command in many programming and scripting languages. In the context of ASP, this code tells the server to send the string "Hello World" to the browser.

The net result is that the .asp page and the .html shown above have exactly the same result: a Web page with the words "Hello World" on it.

Nevertheless, the two pages are very different. When a browser asks the Web server for an .html page, the server passes the page to the browser without much thinking about it. On the other hand, the Web server looks at .asp pages to check for small programs to run. This means that any or all of the contents of an .asp page can be generated on the fly. This book will explore how this can be useful.

Why JavaScript?

Most books about ASP use the VBScript scripting language. Rather than use VBScript, this book uses JavaScript, for a number of reasons:

  • Active Server Pages can be written in VBScript, JavaScript, as well as PerlScript. Because all work pretty much equally well for most things, deciding which language to use is pretty much a matter of taste.
  • I'm more used to working in JavaScript than in VBScript, so it's often easier for me to use JavaScript.
  • JavaScript is the only practical language to use for client-side programming. I find the idea of switching from one language to another annoying. By using JavaScript on the server side, I can use the same language on both sides. Of course, the browser environment is very different from the ASP environment. Still, using a single language keeps my life simple. Especially because I do hardly any client-side scripting, because it never seems to work right, and figuring out the difference between all the browsers is something I never seem to get around to.
  • JavaScript is an open protocol. VBScript is not.
  • There are a lot of JavaScript programmers out there and not a lot of resources for using JavaScript on the server side. When I got an opportunity to write a book on ASP, it seemed like a good opportunity to tip the balance the other way.

What's the Difference between JavaScript, JScript, and ECMA Script?

JavaScript first emerged on the scene as a scripting language for the Netscape browser. Later, when you could use JavaScript with Microsoft Internet Explorer, I think they called it JScript (at any rate, Microsoft often calls it JScript now).

Because Netscape and Microsoft couldn't agree on how JavaScript/Jscript should work, it was hard to do anything besides rollover buttons that would work reliably.

For the last couple of years, there's been something called ECMA Script that's supposed to be an open protocol that will bring everything back together or something.

Because all the code in this book was written for Microsoft Active Server Pages, it seems likely that one could argue that the code is JScript. Yet, this book talks mostly about JavaScript, rather than JScript. I've been able to find two reasons why: First, I think JavaScript sounds better than JScript; Second, the code that I use in my scripts to declare the language is <%@ Language=JavaScript %>. And this works.


ASP Objects and Other Useful Objects

The reason that ASP, IIS (the Microsoft Web server), and JavaScript are worth using is that they make it easy to create a script quickly, using a suite of tools that let us limit our focus to the specific task confronting us without having to reinvent the wheel.

When our script needs to perform a task, the bulk of the task can often be performed by a built-in ASP object, Microsoft scripting object, or JavaScript object. Some of the important ones are listed below.

A Quick Look at ASP

One of the tasks that used to be a real hassle in the early CGI days was collecting information from a form. For example, if a form collects a variable called email that contains an e-mail address, you can easily access it with the Request object:

email_address = Request("email");

Another fun trick is the ability to redirect a visitor to a different page, using the ASP Response object:


which is a lot faster way to redirect someone than using a <meta> tag.

And, of course, there are a lot of other neat tricks that make it fun and worthwhile to work with ASP and JavaScript! Thus, this book...

A Quick Tour of the More Important Objects

As the name implies, ASP objects are collections of logically related methods and properties. The table below lists the most commonly used ASP objects and the purposes they serve.

ASP Object Purpose
Request Manages information about the request that the browser sends to the Web server. Often, the most important element of this request is incoming form information.
Response Manages information that is being sent to the browser in response to the browser's request to the Web server. For example, the Response.Write() command can be used to send HTML to the browser.
Server Manages information that is related to the server. For example, the Server object can be used to find the URL of the current script.
Session Manages information about a user's total visit. For example, if a user looks at five pages when visiting a site, the Session object can be used to keep track of that user as she looks at the five pages.

In addition to objects that are unique to ASP, it is possible to use Microsoft scripting objects from within the ASP environment. For example:

Microsoft Scripting Object Purpose
FileSystem Can be used to read and write information to and from the filesystem, including looking at the contents of existing files and creating new files.
ADODB A database technology that can be used to read and write information stored in databases such as MicrosoftAccess, Microsoft SQL Server, or Oracle.
CDONTS Contains an object called NewMail that can be used tosend email from a script.

Finally, the JavaScript language includes some built-in objects that help with certain tasks. For example:

JavaScript Object Purpose
Date Does the legwork necessary to work with dates—who has time to keep track of days, months, years, etc...?
Math A variety of useful math tricks such as generatingrandom numbers and rounding off real numbers.

How to Use This Book

This book consists of a series of fully working programs that can usually be set up in a matter of minutes. Unlike CGI scripts, where you often have to worry about permissions and other configuration issues, the ASP scripts in this book can be FTPd to just about any Windows NT or Windows 2000 server (or even a Win95/98 PC with personal Web server installed) and be up and running immediately.

If you're new to Web scripting/programming, it's probably a good idea to use Chapter 1 as a tutorial.

After that, this book can be used as a cookbook: Simply jump directly to the script that looks interesting or otherwise meets your needs, and you should be up and running quickly, whether you're a novice or an experienced programmer working with ASP for the first time.

The appendixes contain reference information on topics that relate in one way or another to getting ASP scripts up and running quickly and easily.


All code examples are identified by the use of the Courier fixed width font. If there are line numbers next to an example of code:

1.// Some code examples2.// have line numbers next to them.

1,2.The code will usually be followed by detailed explanations of how the code works.

Note that, in some cases, a line of code will wrap to the next line. That does not mean that there is a line break in the code! You can generally tell a wrapped line because there is no line number next to the part of the line that has wrapped. Putting a line break where a line wraps can cause some odd behavior that's surprisingly difficult to track down, so be careful with this one. Don't want to worry about line breaks? Don't! Go to the companion Web site and download the code: http://www.phptr.com/essential/.

How Chapters Are Structured

Each chapter is structured as follows:

  1. Introduction: Some kind of effort to give you a sense of what the chapter is about.
  2. New Features: A description of any new ASP or JavaScript features that will be used in the code.
  3. Source Code: The source code is listed, followed by a detailed description of how it works.
  4. Recap: A brief summary of what was in the chapter.
  5. Advanced Projects: Some ideas on how you could hack the script presented in the chapter.

This book assumes that you've got at least a passing familiarity with HTML. If you haven't worked directly with HTML before, you'll probably want an HTML resource to turn to.

Case Sensitivity

JavaScript is case-sensitive. sO be cAreful about how you type things. If something doesn't work right, you can explore changing the case...



Untitled Document Chapter 4

Line 13 of ch4_update_record.asp should be:

if (temp_field.search(/co_|toss|current_/) < 0 ){

Download the corrected script

ch4_delete_record.asp in chapter 4 is an old version of the script and is incompatible with the other code in chapter 4."

Download the corrected script

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020