home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 10 / amigaformatcd10.iso / -in_the_mag- / html_tutorial / mas_form.cpp < prev    next >
Text File  |  1996-09-03  |  2KB  |  102 lines

  1. // (C) M.A.Smith University of Brighton
  2. //
  3. // Permission is granted to use this code
  4. //   provided this declaration and copyright notice remains intact.
  5. //
  6. // 26 August 1995
  7.  
  8. #include "t99_type.h"
  9.  
  10. #include <iostream.h>
  11. #include <iomanip.h>
  12. #include <stdlib.h>
  13.  
  14. void intro();
  15. void finish();
  16. void form_data_output();
  17. void stream_data();
  18. void return_button();
  19. char* getenv_n( char [] );
  20.  
  21. // Main program
  22. //
  23.  
  24. int main()
  25. {
  26.   intro();
  27.   form_data_output();
  28.   stream_data();
  29.   return_button();
  30.   finish();
  31.   return 0;
  32. }
  33.  
  34. void intro()
  35. {
  36.   cout << "Content-type: text/html" << "\n"
  37.        << "\n" << "\n" ;
  38.   cout << "<HTML>  " << "\n";
  39.   cout << "<HEAD>  " << "\n";
  40.   cout << "</HEAD> " << "\n";
  41.   cout << "<BODY>  " << "\n";
  42. }
  43.  
  44. void form_data_output( )
  45. {
  46.   cout << "<P>" << "\n";
  47.   cout << "The data sent to the form processing program " <<
  48.       "in the environment variable QUERY_STRING is:" << "\n";
  49.   cout << "<P>" << "\n" << "\n";
  50.   cout << "<TABLE BORDER CELLPADDING=2>" << "\n";
  51.   cout << "<TD>" << "\n";
  52.   cout << getenv_n( "QUERY_STRING" ) <<  "\n";
  53.   cout << "</TD>" << "\n";
  54.   cout << "</TABLE>" << "\n";
  55. }
  56.  
  57. void stream_data()
  58. {
  59.   char ch;
  60.   cout << "<P>" << "\n";
  61.   cout << "Contents of stdin" << "<P>" << "\n";
  62.   cout << "<TABLE BORDER CELLPADDING=2>" << "\n";
  63.   cout << "<TD>" << "\n";
  64.   cout << "<PRE>" << "\n";
  65.   cout << "" << "\n";
  66.   {
  67.     int len = 0;
  68.     char *p_ch = getenv( "CONTENT_LENGTH" );
  69.     if ( p_ch != NULL ) len = atoi( p_ch );
  70.     if ( len > 0 )
  71.     {
  72.       cin >> resetiosflags( ios::skipws );
  73.       while ( cin >> ch, !cin.eof() )
  74.       {
  75.         cout << ch;
  76.         if ( --len <=0 ) break;
  77.       }
  78.     }
  79.   }
  80.   cout << "</PRE>" << "\n";
  81.   cout << "</TD>" << "\n";
  82.   cout << "</TABLE>" << "\n";
  83. }
  84.  
  85. void return_button()
  86. {
  87.   cout << "<P>" << "\n";
  88.   cout << "<TABLE BORDER CELLPADDING=2>" << "\n";
  89.   cout << "<TD>" << "\n";
  90.   cout << "<A HREF=\"" << getenv_n( "HTTP_REFERER" ) << "\" >" <<
  91.       "Return" << "</A>" << "\n";
  92.   cout << "</TD>" << "\n";
  93.   cout << "</TABLE>" << "\n";
  94. }
  95.  
  96.  
  97. void finish()
  98. {
  99.   cout << "</BODY>" << "\n";
  100.   cout << "</HTML>" << "\n";
  101. }
  102.