CONTENTS Previewing the Newsletter 703 Sending the Message 704 Extending the Project 709 Next 709 29 Building Web Forums 711 The Problem 712 Solution Components 712 Solution Overview 714 Designing the Database 716 Viewing the Tree of Articles 718 Expanding and Collapsing. | xxi Contents Previewing the Newsletter .703 Sending the Message .704 Extending the Next .709 29 Building Web Forums 711 The Solution Solution Overview .714 Designing the Database .716 Viewing the Tree of Articles .718 Expanding and Collapsing .721 Displaying the Articles .724 Using the treenode Class .725 Viewing Individual Articles .731 Adding New Articles .734 Extensions .741 Using an Existing System .741 Next .742 30 Generating Personalized Documents in Portable Format PDF 743 The Evaluating Document Formats .745 Paper .745 ASCII .745 Word Processor Formats .746 Rich Text Format .746 PostScript .747 Portable Document Format .748 Solution Question and Answer Document Generation Software .749 Solution Overview .752 Asking the Questions .753 Grading the Answers .755 Generating an RTF Certificate .758 Generating a PDF Certificate from a Template .762 Generating a PDF Document Using PDFlib .765 A Hello World Script for PDFlib .766 Generating Our Certificate with PDFlib .770 xxii PHP and MySQL Web Development Problems with Headers .777 Extending the Further Reading .778 Part VI Appendixes 779 A Installing PHP 4 and MySQL 781 Running PHP as a CGI Interpreter or Module .782 Installing Apache PHP and MySQL Under UNIX .783 Apache and mod_SSL .787 File Is SSL Working .792 Installing Apache PHP and MySQL Under Windows .793 Installing MySQL Under Windows .793 Installing Apache Under Windows .795 Differences Between Apache for Windows and UNIX .798 Installing PHP for Windows .799 Installation Notes for Microsoft IIS .800 Installation Notes for Microsoft PWS .802 Other Configurations .802 B Web Resources 803 PHP MySQL and SQL Specific Resources .806 Apache Resources .806 Web Development .806 Index 807 About the Authors Laura Thomson is a lecturer in Web programming in the Department of Computer Science at RMIT University in Melbourne .