// Fig. 19.14: portal.cpp // Handles entry to Bug2Bug Travel. #include using std::cout; using std::cin; #include using std::string; #include using std::getenv; using std::atoi; int main() { char postString[ 1024 ] = ""; string dataString = ""; string nameString = ""; string passwordString = ""; int contentLength = 0; // data was posted if ( getenv( "CONTENT_LENGTH" ) ) contentLength = atoi( getenv( "CONTENT_LENGTH" ) ); cin.read( postString, contentLength ); dataString = postString; // search string for input data int namelocation = dataString.find( "namebox=" ) + 8; int endNamelocation = dataString.find( "&" ); int password = dataString.find( "passwordbox=" ) + 12; int endPassword = dataString.find( "&button" ); // get values for name and password nameString = dataString.substr( namelocation, endNamelocation - namelocation ); passwordString = dataString.substr( password, endPassword - password ); cout << "Content-Type: text/html\n\n"; // output HTTP header // output XML declaration and DOCTYPE cout << "" << ""; // output html element and some of its contents cout << "" << "Bug2Bug Travel"; // output specials cout << "

Welcome " << nameString << "!

" << "

Here are our weekly specials:

" << "
  • Boston to Taiwan ($875)
  • " << "
  • San Diego to Hong Kong ($750)
  • " << "
  • Chicago to Mexico City ($568)
"; if ( passwordString == "coast2coast" ) // password is correct cout << "

Current member special: " << "Seattle to Tokyo ($400)

"; else // password was incorrect cout << "

Sorry. You have entered an incorrect password

"; cout << ""; return 0; } // end main /************************************************************************** * (C) Copyright 1992-2005 by Deitel & Associates, Inc. and * * Pearson Education, Inc. All Rights Reserved. * * * * DISCLAIMER: The authors and publisher of this book have used their * * best efforts in preparing the book. These efforts include the * * development, research, and testing of the theories and programs * * to determine their effectiveness. The authors and publisher make * * no warranty of any kind, expressed or implied, with regard to these * * programs or to the documentation contained in these books. The authors * * and publisher shall not be liable in any event for incidental or * * consequential damages in connection with, or arising out of, the * * furnishing, performance, or use of these programs. * **************************************************************************/