1. Trang chủ
  2. » Công Nghệ Thông Tin

PHP and MySQL Web Development - P125 pps

5 97 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Cấu trúc

  • PHP and MySQL Web Development

  • Copyright

  • Table of Contents

  • Introduction

  • Part I: Using PHP

    • Chapter 1: PHP Crash Course

    • Chapter 2: Storing and Retrieving Data

    • Chapter 3: Using Arrays

    • Chapter 4: String Manipulation and Regular Expressions

    • Chapter 5: Reusing Code and Writing Functions

    • Chapter 6: Object-Oriented PHP

  • Part II: Using MySQL

    • Chapter 7: Designing Your Web Database

    • Chapter 8: Creating Your Web Database

    • Chapter 9: Working with Your MySQL Database

    • Chapter 10: Accessing Your MySQL Database from the Web with PHP

    • Chapter 11: Advanced MySQL

  • Part III: E-commerce and Security

    • Chapter 12: Running an E-commerce Site

    • Chapter 13: E-commerce Security Issues

    • Chapter 14: Implementing Authentication with PHP and MySQL

    • Chapter 15: Implementing Secure Transactions with PHP and MySQL

  • Part IV: Advanced PHP Techniques

    • Chapter 16: Interacting with the File System and the Server

    • Chapter 17: Using Network and Protocol Functions

    • Chapter 18: Managing the Date and Time

    • Chapter 19: Generating Images

    • Chapter 20: Using Session Control in PHP

    • Chapter 21: Other Useful Features

  • Part V: Building Practical PHP and MySQL Projects

    • Chapter 22: Using PHP and MySQL for Large Projects

    • Chapter 23: Debugging

    • Chapter 24: Building User Authentication and Personalization

    • Chapter 25: Building a Shopping Cart

    • Chapter 26: Building a Content Management System

    • Chapter 27: Building a Web-Based Email Service

    • Chapter 28: Building a Mailing List Manager

    • Chapter 29: Building Web Forums

    • Chapter 30: Generating Personalized Documents in Portable Document Format (PDF)

    • Chapter 31: Connecting to Web Services with XML and SOAP

  • Part VI: Appendixes

    • Appendix A: Installing PHP and MySQL

    • Appendix B: Web Resources

  • Index

  • What’s On the CD-ROM?

Nội dung

592 Chapter 27 Building a Web-Based Email Service if($action == 'log-out') { session_destroy(); unset($action); unset($HTTP_SESSION_VARS); } //need to process choose, delete or store account before drawing header switch ( $action ) { case 'delete-account' : { delete_account($HTTP_SESSION_VARS['auth_user'], $account); break; } case 'store-settings' : { store_account_settings($HTTP_SESSION_VARS['auth_user'], $HTTP_POST_VARS); break; } case 'select-account' : { // if have chosen a valid account, store it as a session variable if($account&&account_exists($HTTP_SESSION_VARS['auth_user'], $account)) { $HTTP_SESSION_VARS['selected_account'] = $account; } } } // set the buttons that will be on the tool bar $buttons[0] = 'view-mailbox'; $buttons[1] = 'new-message'; $buttons[2] = 'account-setup'; //only offer a log out button if logged in if(check_auth_user()) { $buttons[4] = 'log-out'; } //***************************************************************************** // Stage 2: headers // Send the HTML headers and menu bar appropriate to current action //***************************************************************************** if($action) { Listing 27.2 Continued 33 525x ch27 1/24/03 2:56 PM Page 592 593 Script Architecture // display header with application name and description of page or action do_html_header($HTTP_SESSION_VARS['auth_user'], "Warm Mail - ". format_action($action), $HTTP_SESSION_VARS['selected_account']); } else { // display header with just application name do_html_header($HTTP_SESSION_VARS['auth_user'], "Warm Mail", $HTTP_SESSION_VARS['selected_account']); } display_toolbar($buttons); //***************************************************************************** // Stage 3: body // Depending on action, show appropriate main body content //***************************************************************************** //display any text generated by functions called before header echo $status; if(!check_auth_user()) { echo '<p>You need to log in'; if($action&&$action!='log-out') echo ' to go to '.format_action($action); echo '.</p><br /><br />'; display_login_form($action); } else { switch ( $action ) { // if we have chosen to setup a new account, or have just added or // deleted an account, show account setup page case 'store-settings' : case 'account-setup' : case 'delete-account' : { display_account_setup($HTTP_SESSION_VARS['auth_user']); break; } case 'send-message' : { if(send_message($to, $cc, $subject, $message)) echo '<p>Message sent.</p><br /><br /><br /><br /><br /><br />'; Listing 27.2 Continued 33 525x ch27 1/24/03 2:56 PM Page 593 594 Chapter 27 Building a Web-Based Email Service else echo '<p>Could not send message.</p><br /><br /><br /><br /> <br /><br />'; break; } case 'delete' : { delete_message($HTTP_SESSION_VARS['auth_user'], $HTTP_SESSION_VARS['selected_account'], $messageid); //note deliberately no 'break' - we will continue to the next case } case 'select-account' : case 'view-mailbox' : { // if mailbox just chosen, or view mailbox chosen, show mailbox display_list($HTTP_SESSION_VARS['auth_user'], $HTTP_SESSION_VARS['selected_account']); break; } case 'show-headers' : case 'hide-headers' : case 'view-message' : { // if we have just picked a message from the list, or were looking at // a message and chose to hide or view headers, load a message $fullheaders = ($action=='show-headers'); display_message($HTTP_SESSION_VARS['auth_user'], $HTTP_SESSION_VARS['selected_account'], $messageid, $fullheaders); break; } case 'reply-all' : { //set cc as old cc line if(!$imap) $imap = open_mailbox($HTTP_SESSION_VARS['auth_user'], $HTTP_SESSION_VARS['selected_account']); if($imap) { $header = imap_header($imap, $messageid); if($header->reply_toaddress) $to = $header->reply_toaddress; else $to = $header->fromaddress; $cc = $header->ccaddress; $subject = 'Re: '.$header->subject; Listing 27.2 Continued 33 525x ch27 1/24/03 2:56 PM Page 594 595 Script Architecture $body = add_quoting(stripslashes(imap_body($imap, $messageid))); imap_close($imap); display_new_message_form($HTTP_SESSION_VARS['auth_user'], $to, $cc, $subject, $body); } break; } case 'reply' : { //set to address as reply-to or from of the current message if(!$imap) $imap = open_mailbox($HTTP_SESSION_VARS['auth_user'], $HTTP_SESSION_VARS['selected_account']); if($imap) { $header = imap_header($imap, $messageid); if($header->reply_toaddress) $to = $header->reply_toaddress; else $to = $header->fromaddress; $subject = 'Re: '.$header->subject; $body = add_quoting(stripslashes(imap_body($imap, $messageid))); imap_close($imap); display_new_message_form($HTTP_SESSION_VARS['auth_user'], $to, $cc, $subject, $body); } break; } case 'forward' : { //set message as quoted body of current message if(!$imap) $imap = open_mailbox($HTTP_SESSION_VARS['auth_user'], $HTTP_SESSION_VARS['selected_account']); if($imap) { $header = imap_header($imap, $messageid); $body = add_quoting(stripslashes(imap_body($imap, $messageid))); $subject = 'Fwd: '.$header->subject; imap_close($imap); display_new_message_form($HTTP_SESSION_VARS['auth_user'], $to, $cc, $subject, $body); Listing 27.2 Continued 33 525x ch27 1/24/03 2:56 PM Page 595 596 Chapter 27 Building a Web-Based Email Service } break; } case 'new-message' : { display_new_message_form($HTTP_SESSION_VARS['auth_user'], $to, $cc, $subject, $body); break; } } } //***************************************************************************** // Stage 4: footer //***************************************************************************** do_html_footer(); ?> This script uses an event handling approach. It contains the knowledge or logic about which function needs to be called for each event.The events in this case are triggered by the user clicking the various buttons in the site, each of which selects an action. Most buttons are produced by the display_button() function, but the display_form_but- ton() function is used if it’s a submit button.These functions are both in output_fns.php.These all jump to URLs of the form index.php?action=log-out The value of the action variable when index.php is called determines which event handler to activate. The four main sections to the script are as follows: 1. We do some processing that must take place before we send the page header to the browser, such as starting the session, executing any preprocessing for the action the user has selected, and deciding what the headers will look like. 2. We process and send the appropriate headers and menu bar for the action the user has selected. 3. We choose which body of the script to execute, depending on the selected action. The different actions trigger different function calls. 4. We send the page footers. If you look briefly through the code for the script, you will see that these four sections are marked with comments. To understand this script fully, let’s walk through actually using the site action by action. Listing 27.2 Continued 33 525x ch27 1/24/03 2:56 PM Page 596 . $messageid); if($header->reply_toaddress) $to = $header->reply_toaddress; else $to = $header->fromaddress; $cc = $header->ccaddress; $subject = 'Re: '.$header->subject; Listing. 'store-settings' : case 'account-setup' : case 'delete-account' : { display_account_setup($HTTP_SESSION_VARS['auth_user']); break; } case 'send-message'. $HTTP_SESSION_VARS['selected_account']); break; } case 'show-headers' : case 'hide-headers' : case 'view-message' : { // if we have just picked a message from the list, or were looking at // a message and chose to

Ngày đăng: 07/07/2014, 03:20