[LON-CAPA-cvs] cvs: modules /raeburn/register userupdate.pm

raeburn raeburn at source.lon-capa.org
Fri Mar 10 11:09:03 EST 2017


raeburn		Fri Mar 10 16:09:03 2017 EDT

  Modified files:              
    /modules/raeburn/register	userupdate.pm 
  Log:
  - satisfy w3c validation
  - user's information can include country field
  - switch to Apache2/mod_perl2 calls.
  
  
-------------- next part --------------
Index: modules/raeburn/register/userupdate.pm
diff -u modules/raeburn/register/userupdate.pm:1.4 modules/raeburn/register/userupdate.pm:1.5
--- modules/raeburn/register/userupdate.pm:1.4	Mon Mar 11 02:23:14 2013
+++ modules/raeburn/register/userupdate.pm	Fri Mar 10 16:09:02 2017
@@ -1,15 +1,16 @@
 package Apache::LON::userupdate;
 
-# $Id: userupdate.pm,v 1.4 2013/03/11 02:23:14 raeburn Exp $
+# $Id: userupdate.pm,v 1.5 2017/03/10 16:09:02 raeburn Exp $
 
 use strict;
 use Storable qw(store retrieve dclone);
-use MD5;
+use Digest::MD5;
 use Crypt::DES;
 use Crypt::PasswdMD5;
-use Apache::Const qw(OK SERVER_ERROR);
+use Apache2::Const qw(OK SERVER_ERROR);
 use DBI;
 use CGI::Cookie;
+use HTML::Entities;
 use Apache::LON::processform;
 
 sub handler {
@@ -41,7 +42,7 @@
     my $token = $params{'token'};
     my $forwardurl;
 
-    my %cookies = CGI::Cookie->parse(Apache->request->header_in('Cookie'));
+    my (%cookies) = CGI::Cookie->parse($r->headers_in->{Cookie});
     foreach my $key (keys %cookies) {
         if ($key eq "LONCAPAID") {
             my %attribs = $cookies{$key}->value;
@@ -63,8 +64,8 @@
     my $jscript;
     my $loaditem;
     my $metainfo = <<"ENDMETA";
-<meta http-equiv="pragma" content="no-cache">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="pragma" content="no-cache" />
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 ENDMETA
     if (open (my $fh, "<$authkeyfile") ) {
         $dbpwd = <$fh>;
@@ -73,13 +74,11 @@
     }
 
     my $contact_email = "helpdesk\@lon-capa.org";
-    my $contact_name = "LON-CAPA support team";
+    my $contact_name = "MSU LON-CAPA group";
 
     my %attr = (
-#                data_source => $r->dir_config('Auth_DBI_data_source'),
-#                username    => $r->dir_config('Auth_DBI_username'),
-                data_source => 'dbi:mysql:loncapasupport',
-                username => 'support',
+                data_source => $r->dir_config('Auth_DBI_data_source'),
+                username    => $r->dir_config('Auth_DBI_username'),
                 password    => $dbpwd
              );
 
@@ -95,7 +94,7 @@
     if (!-e "$tokendir") {
         mkdir($tokendir,0755);
     }
-	
+
     if ($update) {
         my $user_quoted = $dbh->quote( $user );
         my $count = $dbh->selectrow_array("SELECT count(user_id) FROM support_auth_passwd WHERE user_id = $user_quoted");
@@ -109,7 +108,7 @@
                     ($msg,$jscript) = &send_pwform($user,$token,$tokendir,$contact_name,$contact_email);
                 }
             } else {
-                my @info=('lastname','firstname','middlename','generation','title','dept','institution','streetaddress','citystate','zip','phone');
+                my @info=('lastname','firstname','middlename','generation','title','dept','institution','streetaddress','citystate','zip','phone','country');
                 if ($state eq 'process') {
                     $msg = &change_info($dbh,$user,$forwardurl,\@info,\%params);
                 } else {
@@ -118,7 +117,7 @@
             }
             if ($state eq 'process') {
                 $metainfo .= qq|
-<meta HTTP-EQUIV="Refresh" CONTENT="4; url=$forwardurl" />
+<meta HTTP-EQUIV="Refresh" CONTENT="1; url=$forwardurl" />
                 |;
             }
         } else {
@@ -128,17 +127,18 @@
         ($msg,$jscript,$loaditem) = &show_choices();
     }
     my $output = (<<"END");
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 <head>
 <title>Update your information</title>
-<link type="text/css" rel="stylesheet" href="/css/registration.css">
+<link type="text/css" rel="stylesheet" href="/css/registration.css" />
 END
     &main_box(\$output,$jscript,$metainfo,$loaditem,$forwardurl);
     $output .= <<"END";
 <h3>Change user information</h3>
     $msg
        </td>
-       <td align="right" valign="top" width="10"><img src="/images/login/lclogin_r1_c7.gif" width="10" height="10" border="0" alt=""></td>
+       <td align="right" valign="top" width="10"><img src="/images/login/lclogin_r1_c7.gif" width="10" height="10" border="0" alt="" /></td>
       </tr>
 END
     &main_footer(\$output);
@@ -147,7 +147,6 @@
 </html>
 END
     $r->content_type('text/html');
-    $r->send_http_header;
     $r->print($output);
     return OK;
 }
@@ -166,18 +165,18 @@
 END
     my $msg = <<"END";
 <br />
-<form name="choose" method="post">
+<form name="choose" method="post" action="">
     <table width="100%" border='0' cellspacing='0' cellpadding='0'>
      <tr>
       <td width='5'> </td>
       <td>
-       <input type="hidden" name="update" value="">
-       <a href="javascript:jumpPage('newpass')"><b><u>Change your password</u></b>.</a><br />
+       <input type="hidden" name="update" value="" />
+       <a href="javascript:jumpPage('newpass')"><b><u>Change your password</u></b></a><br />
        Replace current password
       </td>
       <td width='10'> </td>
       <td>
-      <a href="javascript:jumpPage('newdata')"><b><u>Update your personal information</u></b>.</a><br>
+      <a href="javascript:jumpPage('newdata')"><b><u>Update your personal information</u></b></a><br />
       Make changes to name, address or institutional information.
       </td>
       <td width='5'> </td>
@@ -195,7 +194,7 @@
     my ($msg,$jscript);
     my ($lkey,$ukey,$lextkey,$uextkey) = &make_keys();
     if ($token eq '') {
-        $token = MD5->hexhash(MD5->hexhash(time.{}.rand().$$));
+        $token = Digest::MD5->md5_hex(Digest::MD5->md5_hex(time.{}.rand().$$));
     }
     my %tempHash = (
                    'deskey' => $ukey.$lkey
@@ -211,7 +210,7 @@
         $msg = <<"END"; 
         Thank you for your request to modify the password for your guestID for
         the LON-CAPA support/registration system.<br /><br />
-        <form name="client" method="post">
+        <form name="client" method="post" action="">
         <table cellspacing="0" callpadding="0">
          <tr>
           <td>Please enter your new password: </td>
@@ -222,20 +221,20 @@
           <td><input type="password" name="passwordchk" /></td>
         </tr>
         </table><br/>
-        Would you like a reminder of this new password to be sent to you via e-mail? <input type="radio" name="remindme" value="yes" />Yes  <input type="radio" name="remindme" value="no" checked="checked"/>No<br /><br /> 
-        <input type="button" class="buttoncolored" name="pwsubmit" value="Change password" onClick="verifypw('changeme')">
+        Would you like a reminder of this new password to be sent to you via e-mail? <input type="radio" name="remindme" value="yes" />Yes  <input type="radio" name="remindme" value="no" checked="checked" />No<br /><br /> 
+        <input type="button" class="buttoncolored" name="pwsubmit" value="Change password" onClick="verifypw('changeme')" />
         </form>
-        <form method="post" name="server">
-        <input type="hidden" name="state" value="process">
-        <input type="hidden" name="update" value="newpass">
-        <input type="hidden" name="password" value="">
-        <input type="hidden" name="remindme" value="">
-        <input type="hidden" name="token" value="$token">
+        <form method="post" name="server" action="">
+        <input type="hidden" name="state" value="process" />
+        <input type="hidden" name="update" value="newpass" />
+        <input type="hidden" name="password" value="" />
+        <input type="hidden" name="remindme" value="" />
+        <input type="hidden" name="token" value="$token" />
         </form>
 END
         $jscript = <<"END";
-<script language=javascript src="/scripts/londes.js" type="text/javascript"></script>
-<script language='javascript' type='text/javascript'>
+<script language="javascript" src="/scripts/londes.js" type="text/javascript"></script>
+<script language="javascript" type="text/javascript">
 <!--
 function verifypw(caller) {
   if (document.client.password.value == "" || !document.client.password.value) {
@@ -292,25 +291,37 @@
                                                                                                                      
 # build function to populate fields on page load
     if ($userstatus) {
-        $loaditem = "onLoad=javascript:setValues()";
+        $loaditem = 'onload="javascript:setValues();"';
         $set_func = qq|
 function setValues() {
- var formName = document.changeinfo
- var iter = 0
+ var formName = document.changeinfo;
+ var iter = 0;
  var selParam = 0\n
         |;
-        foreach (@{$info}) {
-            $set_func .= qq|
- formName.$_.value = "$curr{$_}"
+        foreach my $field (@{$info}) {
+            if ($field eq 'country') {
+                $set_func .= qq|
+    if (formName.$field.length) {
+        for (var i=0; i<formName.$field.length; i++) {
+            if (formName.$field.options[i].value == "$curr{$field}") {
+                formName.$field.options[i].selected = true;
+            }
+        } 
+    }
+                |;
+            } else {
+                $set_func .= qq|
+ formName.$field.value = "$curr{$field}"
             \n|;
+            }
         }
         $set_func .= "
 }\n";
     }
 
     my $jscript = <<END;
-<script language=javascript type = "text/javascript">
-<!--
+<script language="javascript" type="text/javascript">
+// <![CDATA[
                                                                                                                    
 $set_func
                                                                                                                    
@@ -327,12 +338,14 @@
       return
   }
 }
-// End hiding -->
+// ]]>
 </script>
 END
+
+    my $country_selector = &allcountries();
                                                                                                                    
     $$output .= <<"END";
- <form name="changeinfo" method="post">
+ <form name="changeinfo" method="post" action="">
   <table border="0" cellspacing="0" cellpadding="0">
    <tr>
     <td> </td>
@@ -347,23 +360,23 @@
          <tr>
           <td align="right" class="LC_leftinner"><b>Name</b></td>
           <td valign="top" class="LC_rightinner">
-           <table class="LC_inner">
+           <table class="LC_in" cellpadding="2" cellspacing="6">
             <tr align="left">
              <td align="center">
               first<br />
-              <input type="text" size="20" name="firstname" value="">
+              <input type="text" size="20" name="firstname" value="" />
              </td>
              <td align="center">
               middle<br />
-              <input type="text" size="5" name="middlename" value="">
+              <input type="text" size="5" name="middlename" value="" />
              </td>
              <td align="middle">
               last<br />
-              <input type="text" size="20" name="lastname" value="">
+              <input type="text" size="20" name="lastname" value="" />
              </td>
              <td align="center">
               suffix<br />
-              <input type="text" size="5" name="generation" value="">
+              <input type="text" size="5" name="generation" value="" />
              </td>
             </tr>
            </table>
@@ -372,10 +385,10 @@
          <tr>
           <td align="right" class="LC_leftinner"><b>Title</b></td>
           <td valign="top" class="LC_rightinner">
-           <table class="LC_inner">
+           <table class="LC_in" cellpadding="2" cellspacing="6">
             <tr>
              <td>
-              <input type="text" size="20" name="title" value="">
+              <input type="text" size="20" name="title" value="" />
              </td>
             </tr>
            </table>
@@ -384,10 +397,10 @@
          <tr>
           <td align="right" class="LC_leftinner"><b>Department</b></td>
           <td class="LC_rightinner">
-           <table class="LC_inner">
+           <table class="LC_in" cellpadding="2" cellspacing="6">
             <tr>
              <td>
-              <input type="text" size="30" name="dept" value="">
+              <input type="text" size="30" name="dept" value="" />
              </td>
             </tr>
            </table>
@@ -396,10 +409,10 @@
          <tr>
           <td align="right" class="LC_leftinner"><b>Institution</b></td>
           <td class="LC_rightinner">
-           <table class="LC_inner">
+           <table class="LC_in" cellpadding="2" cellspacing="6">
             <tr>
              <td>
-              <input type="text" size="20" name="institution" value="">
+              <input type="text" size="20" name="institution" value="" />
              </td>
             </tr>
            </table>
@@ -408,19 +421,31 @@
          <tr>
           <td align="right" class="LC_leftinner"><b>Mailing Address</b></td>
           <td class="LC_rightinner">
-           <table class="LC_inner">
+           <table class="LC_in" cellpadding="2" cellspacing="6">
             <tr>
              <td align="middle">
               street<br />
-              <input type="text" size="20" name="streetaddress" value="">
+              <input type="text" size="20" name="streetaddress" value="" />
              </td>
              <td align="middle">
               city/state<br />
-              <input type="text" size="25" name="citystate" value="">
+              <input type="text" size="25" name="citystate" value="" />
              </td>
              <td align="middle">
               zip<br />
-              <input type="text" size="8" name="zip" value="">
+              <input type="text" size="8" name="zip" value="" />
+             </td>
+            </tr>
+           </table>
+          </td>
+         </tr>
+         <tr>
+          <td align="right" class="LC_leftinner"><b>Country</b></td>
+          <td class="LC_rightinner">
+           <table class="LC_in" cellpadding="2" cellspacing="6">
+            <tr>
+             <td>
+              $country_selector
              </td>
             </tr>
            </table>
@@ -429,10 +454,10 @@
          <tr>
           <td align="right" class="LC_leftcol"><b>Phone Number</b></td> 
           <td class="LC_rightcol">
-           <table class="LC_inner">
+           <table class="LC_in" cellpadding="2" cellspacing="6">
             <tr>
              <td>
-              <input type="text" size="30" name="phone" value="">
+              <input type="text" size="30" name="phone" value="" />
              </td>
             </tr>
            </table>
@@ -474,7 +499,7 @@
         }
     }
 # Is there any user data for this user?
-    ($userdata{'created'},$userdata{'domain'},$userdata{'lastname'},$userdata{'firstname'},$userdata{'middlename'},$userdata{'generation'},$userdata{'title'},$userdata{'dept'},$userdata{'institution'},$userdata{'email'},$userdata{'streetaddress'},$userdata{'citystate'},$userdata{'zip'},$userdata{'phone'}) =  $dbh->selectrow_array("SELECT created,domain,lastname,firstname,middlename,generation,title,dept,institution,email,streetaddress,citystate,zip,phone FROM support_user WHERE user_id = $user_quoted");
+    ($userdata{'created'},$userdata{'domain'},$userdata{'lastname'},$userdata{'firstname'},$userdata{'middlename'},$userdata{'generation'},$userdata{'title'},$userdata{'dept'},$userdata{'institution'},$userdata{'email'},$userdata{'streetaddress'},$userdata{'citystate'},$userdata{'zip'},$userdata{'phone'},$userdata{'country'}) =  $dbh->selectrow_array("SELECT created,domain,lastname,firstname,middlename,generation,title,dept,institution,email,streetaddress,citystate,zip,phone,country FROM support_user WHERE user_id = $user_quoted");
                                                                                                                      
     if ($userdata{'created'}) {
         foreach (@{$info}) {
@@ -489,17 +514,17 @@
             }
             $statement .= " WHERE user_id=$user_quoted";
             $dbh->do($statement);
-            $msg = "Your user information has been updated.<br />".
-                   "Please click <u><a href='$forwardurl'>Continue</a></u> if this page does not automatically refresh in the next few seconds.<br />";    
+            $msg = 'Your user information has been updated.<br />'.
+                   'Please click <u><a href="'.$forwardurl.'">Continue</a></u> if this page does not automatically refresh in the next few seconds.<br />';
         } else {
-            $msg = "As your user information was unchanged, the information recorded for $user has not been updated. ".
-                   "Please click <u><a href='$forwardurl'>Continue</a></u> if this page does not automatically refresh in the next few seconds.<br />";
+            $msg = 'As your user information was unchanged, the information recorded for '.$user.' has not been updated. '.
+                   'Please click <u><a href="'.$forwardurl.'">Continue</a></u> if this page does not automatically refresh in the next few seconds.<br />';
         }
     } else {
-        my $statement = "INSERT INTO support_user (user_id,created,domain,lastname,firstname,middlename,generation,title,dept,institution,email,streetaddress,citystate,zip,phone) VALUES ($user_quoted,NOW(),'northwood5',$quoted_params{'lastname'},$quoted_params{'firstname'},$quoted_params{'middlename'},$quoted_params{'generation'},$quoted_params{'title'},$quoted_params{'dept'},$quoted_params{'institution'},$quoted_params{'email'},$quoted_params{'streetaddress'},$quoted_params{'citystate'},$quoted_params{'zip'},$quoted_params{'phone'})";
+        my $statement = "INSERT INTO support_user (user_id,created,domain,lastname,firstname,middlename,generation,title,dept,institution,email,streetaddress,citystate,zip,phone) VALUES ($user_quoted,NOW(),'northwood5',$quoted_params{'lastname'},$quoted_params{'firstname'},$quoted_params{'middlename'},$quoted_params{'generation'},$quoted_params{'title'},$quoted_params{'dept'},$quoted_params{'institution'},$quoted_params{'email'},$quoted_params{'streetaddress'},$quoted_params{'citystate'},$quoted_params{'zip'},$quoted_params{'phone'},$quoted_params{'country'})";
         $dbh->do($statement);
-        $msg = "User information has now been recorded for <b>$user</b><br />".
-               "Please click <u><a href='$forwardurl'>Continue</a></u> if this page does not automatically refresh in the next few seconds.<br />";
+        $msg = 'User information has now been recorded for <b>'.$user.'</b><br />'.
+               'Please click <u><a href="'.$forwardurl.'">Continue</a></u> if this page does not automatically refresh in the next few seconds.<br />';
     }
     return($msg);
 }
@@ -511,7 +536,7 @@
                       "From: $contact_name <$contact_email>\n".
                       "Subject: LON-CAPA registration/support\n".
                       "\n\n".$mailmsg."\n\n".
-                      "MSU LON-CAPA support team\n".
+                      "MSU LON-CAPA group\n".
                       "$contact_email\n";
     if (open(MAIL, "|/usr/lib/sendmail -oi -t -odb")) {
         print MAIL $requestmail;
@@ -524,7 +549,7 @@
 }
 
 sub invalid_user {
-    my $user = @_;
+    my ($error,$user) = @_;
     my $msg = "Your guestID ($user) could not be confirmed as a valid ID in the LON-CAPA support/registration system. Please <a href='javascript:history.go(-1)'><u>go back</u></a> and try again.\n";
     return $msg;
 }
@@ -580,6 +605,7 @@
     if ($logoutportal eq '/update') {
         $logoutportal = '/register';
     }
+    my $logout = &HTML::Entities::encode('/logout?portal='.$logoutportal,'<>&"');
     $$output .= <<"END";
 $jscript
 $metainfo
@@ -589,24 +615,23 @@
 <div align="center">
 <table class="LC_loginbox">
   <tr>
-    <td align="left" valign="top" width="12" nowrap><img name="login_r1_c1" src="/images/login/lclogin_r1_c1.gif" width="12" height="10" border="0" alt=""></td>
-    <td width="450" nowrap valign="top">
+    <td align="left" valign="top" width="12"><img name="login_r1_c1" src="/images/login/lclogin_r1_c1.gif" width="12" height="10" border="0" alt="" /></td>
+    <td width="450" valign="top">
       <table class="LC_loginbox_left">
         <tr>
-          <td width="15" rowspan="2" nowrap> </td>
-          <td width="266" align="left" nowrap><img src="/images/login/lonlogos.gif" width="74" height="50" align="left"><br /><nobr><font size="-1">The Learning<i>Online</i> Network with CAPA</font></nobr></td>
-           </td>
-           <td width="15" nowrap> </td>
-           <td width="130" align="left" nowrap><img src="/images/login/student.jpg" rowspan="2" width="130" height="85"></td>
-           <td width="24" rowspan="2" nowrap> </td>
+          <td width="15" rowspan="2"> </td>
+          <td width="74" align="left"><img src="/images/login/lonlogos.gif" width="74" height="50" align="left" alt="" /></td>
+          <td width="15"> </td>
+          <td width="320" align="left"><font size="-1"><span style="white-space: nowrap;">The Learning<i>Online</i> Network with CAPA</span></font></td>
+          <td width="26" rowspan="2"> </td>
         </tr>
         <tr>
-        <td colspan="5" width="450" height="8"><img src="/images/login/login_red_horiz.gif" width="450" height="8"></td>
+        <td colspan="5" width="450" height="8"><img src="/images/login/login_red_horiz.gif" width="450" height="8" alt="" /></td>
         <td align="right" valign="top">
-         <img border="0" src="/images/login/logout_red.gif" width="90" height="23" align="right" usemap="#event_header">
-         <map name = 'event_header'>
-          <area shape='rect' coords=10,2,80,18' href="/logout?portal=$logoutportal">
-          <area shape = 'default' nohref>
+         <img border="0" src="/images/login/logout_red.gif" width="90" height="23" align="right" usemap="#event_header" alt="" />
+         <map name="event_header" id="logout">
+          <area shape="rect" coords="10,2,80,18" href="$logout" alt="" />
+          <area shape="default" nohref="nohref" alt="" />
          </map>
         </td>
       </tr>
@@ -617,12 +642,10 @@
 sub main_footer {
     my $output= shift;
     $$output .= <<"END_OF_FOOT";
-</table>
-<table class="LC_loginbox">
   <tr>
-    <td align="left" valign="bottom" width="10"><img src="/images/login/lclogin_r9_c1.gif" width="10" height="10" border="0" alt=""></td>
-    <td width="698" nowrap> </td>
-    <td align="right" valign="bottom" width="10"><img src="/images/login/lclogin_r9_c7.gif" width="12" height="10" border="0" alt=""></td>
+    <td align="left" valign="bottom" width="10"><img src="/images/login/lclogin_r9_c1.gif" width="10" height="10" border="0" alt="" /></td>
+    <td width="698"> </td>
+    <td align="right" valign="bottom" width="10"><img src="/images/login/lclogin_r9_c7.gif" width="12" height="10" border="0" alt="" /></td>
   </tr>
 </table>
 </div>
@@ -660,4 +683,253 @@
     return ($lkey,$ukey,$lextkey,$uextkey);
 }
 
+sub allcountries {
+   return <<END;
+<select name="country" size="1"> 
+<option value="" selected="selected">Select</option>
+<option value="Afghanistan">Afghanistan</option>
+<option value="Aringland Islands">Åland Islands</option>
+<option value="Albania">Albania</option>
+<option value="Algeria">Algeria</option>
+<option value="American Samoa">American Samoa</option>
+<option value="Andorra">Andorra</option>
+<option value="Angola">Angola</option>
+<option value="Anguilla">Anguilla</option>
+<option value="Antarctica">Antarctica</option>
+<option value="Antigua and Barbuda">Antigua and Barbuda</option>
+<option value="Argentina">Argentina</option>
+<option value="Armenia">Armenia</option>
+<option value="Aruba">Aruba</option>
+<option value="Australia">Australia</option>
+<option value="Austria">Austria</option>
+<option value="Azerbaijan">Azerbaijan</option>
+<option value="Bahamas">Bahamas</option>
+<option value="Bahrain">Bahrain</option>
+<option value="Bangladesh">Bangladesh</option>
+<option value="Barbados">Barbados</option>
+<option value="Belarus">Belarus</option>
+<option value="Belgium">Belgium</option>
+<option value="Belize">Belize</option>
+<option value="Benin">Benin</option>
+<option value="Bermuda">Bermuda</option>
+<option value="Bhutan">Bhutan</option>
+<option value="Bolivia">Bolivia</option>
+<option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option>
+<option value="Botswana">Botswana</option>
+<option value="Bouvet Island">Bouvet Island</option>
+<option value="Brazil">Brazil</option>
+<option value="British Indian Ocean territory">British Indian Ocean Terr,</option>
+<option value="Brunei Darussalam">Brunei Darussalam</option>
+<option value="Bulgaria">Bulgaria</option>
+<option value="Burkina Faso">Burkina Faso</option>
+<option value="Burundi">Burundi</option>
+<option value="Cambodia">Cambodia</option>
+<option value="Cameroon">Cameroon</option>
+<option value="Canada">Canada</option>
+<option value="Cape Verde">Cape Verde</option>
+<option value="Cayman Islands">Cayman Islands</option>
+<option value="Central African Republic">Central African Republic</option>
+<option value="Chad">Chad</option>
+<option value="Chile">Chile</option>
+<option value="China">China</option>
+<option value="Christmas Island">Christmas Island</option>
+<option value="Cocos (Keeling) Islands">Cocos (Keeling) Islands</option>
+<option value="Colombia">Colombia</option>
+<option value="Comoros">Comoros</option>
+<option value="Congo">Congo</option>
+<option value="Congo, Democratic Republic">Congo, Democratic Republic</option>
+<option value="Cook Islands">Cook Islands</option>
+<option value="Costa Rica">Costa Rica</option>
+<option value="Cote d'Ivoire (Ivory Coast)">Côte d'Ivoire (Ivory Coast)</option>
+<option value="Croatia (Hrvatska)">Croatia (Hrvatska)</option>
+<option value="Cuba">Cuba</option>
+<option value="Cyprus">Cyprus</option>
+<option value="Czech Republic">Czech Republic</option>
+<option value="Denmark">Denmark</option>
+<option value="Djibouti">Djibouti</option>
+<option value="Dominica">Dominica</option>
+<option value="Dominican Republic">Dominican Republic</option>
+<option value="East Timor">East Timor</option>
+<option value="Ecuador">Ecuador</option>
+<option value="Egypt">Egypt</option>
+<option value="El Salvador">El Salvador</option>
+<option value="Equatorial Guinea">Equatorial Guinea</option>
+<option value="Eritrea">Eritrea</option>
+<option value="Estonia">Estonia</option>
+<option value="Ethiopia">Ethiopia</option>
+<option value="Falkland Islands">Falkland Islands</option>
+<option value="Faroe Islands">Faroe Islands</option>
+<option value="Fiji">Fiji</option>
+<option value="Finland">Finland</option>
+<option value="France">France</option>
+<option value="French Guiana">French Guiana</option>
+<option value="French Polynesia">French Polynesia</option>
+<option value="French Southern Territories">French Southern Territories</option>
+<option value="Gabon">Gabon</option>
+<option value="Gambia">Gambia</option>
+<option value="Georgia">Georgia</option>
+<option value="Germany">Germany</option>
+<option value="Ghana">Ghana</option>
+<option value="Gibraltar">Gibraltar</option>
+<option value="Greece">Greece</option>
+<option value="Greenland">Greenland</option>
+<option value="Grenada">Grenada</option>
+<option value="Guadeloupe">Guadeloupe</option>
+<option value="Guam">Guam</option>
+<option value="Guatemala">Guatemala</option>
+<option value="Guinea">Guinea</option>
+<option value="Guinea-Bissau">Guinea-Bissau</option>
+<option value="Guyana">Guyana</option>
+<option value="Haiti">Haiti</option>
+<option value="Heard and McDonald Islands">Heard and McDonald Is.</option>
+<option value="Honduras">Honduras</option>
+<option value="Hong Kong">Hong Kong</option>
+<option value="Hungary">Hungary</option>
+<option value="Iceland">Iceland</option>
+<option value="India">India</option>
+<option value="Indonesia">Indonesia</option>
+<option value="Iran">Iran</option>
+<option value="Iraq">Iraq</option>
+<option value="Ireland">Ireland</option>
+<option value="Israel">Israel</option>
+<option value="Italy">Italy</option>
+<option value="Jamaica">Jamaica</option>
+<option value="Japan">Japan</option>
+<option value="Jordan">Jordan</option>
+<option value="Kazakhstan">Kazakhstan</option>
+<option value="Kenya">Kenya</option>
+<option value="Kiribati">Kiribati</option>
+<option value="Korea (north)">Korea (north)</option>
+<option value="Korea (south)">Korea (south)</option>
+<option value="Kuwait">Kuwait</option>
+<option value="Kyrgyzstan">Kyrgyzstan</option>
+<option value="Lao People's Democratic Republic">Lao People's Democratic Rep.</option>
+<option value="Latvia">Latvia</option>
+<option value="Lebanon">Lebanon</option>
+<option value="Lesotho">Lesotho</option>
+<option value="Liberia">Liberia</option>
+<option value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option>
+<option value="Liechtenstein">Liechtenstein</option>
+<option value="Lithuania">Lithuania</option>
+<option value="Luxembourg">Luxembourg</option>
+<option value="Macao">Macao</option>
+<option value="Macedonia, Former Yugoslav Republic Of">Macedonia, Former Yugoslav Rep.</option>
+<option value="Madagascar">Madagascar</option>
+<option value="Malawi">Malawi</option>
+<option value="Malaysia">Malaysia</option>
+<option value="Maldives">Maldives</option>
+<option value="Mali">Mali</option>
+<option value="Malta">Malta</option>
+<option value="Marshall Islands">Marshall Islands</option>
+<option value="Martinique">Martinique</option>
+<option value="Mauritania">Mauritania</option>
+<option value="Mauritius">Mauritius</option>
+<option value="Mayotte">Mayotte</option>
+<option value="Mexico">Mexico</option>
+<option value="Micronesia">Micronesia</option>
+<option value="Moldova">Moldova</option>
+<option value="Monaco">Monaco</option>
+<option value="Mongolia">Mongolia</option>
+<option value="Montenegro">Montenegro</option>
+<option value="Montserrat">Montserrat</option>
+<option value="Morocco">Morocco</option>
+<option value="Mozambique">Mozambique</option>
+<option value="Myanmar">Myanmar</option>
+<option value="Namibia">Namibia</option>
+<option value="Nauru">Nauru</option>
+<option value="Nepal">Nepal</option>
+<option value="Netherlands">Netherlands</option>
+<option value="Netherlands Antilles">Netherlands Antilles</option>
+<option value="New Caledonia">New Caledonia</option>
+<option value="New Zealand">New Zealand</option>
+<option value="Nicaragua">Nicaragua</option>
+<option value="Niger">Niger</option>
+<option value="Nigeria">Nigeria</option>
+<option value="Niue">Niue</option>
+<option value="Norfolk Island">Norfolk Island</option>
+<option value="Northern Mariana Islands">Northern Mariana Islands</option>
+<option value="Norway">Norway</option>
+<option value="Oman">Oman</option>
+<option value="Pakistan">Pakistan</option>
+<option value="Palau">Palau</option>
+<option value="Palestinian Territories">Palestinian Territories</option>
+<option value="Panama">Panama</option>
+<option value="Papua New Guinea">Papua New Guinea</option>
+<option value="Paraguay">Paraguay</option>
+<option value="Peru">Peru</option>
+<option value="Philippines">Philippines</option>
+<option value="Pitcairn">Pitcairn</option>
+<option value="Poland">Poland</option>
+<option value="Portugal">Portugal</option>
+<option value="Puerto Rico">Puerto Rico</option>
+<option value="Qatar">Qatar</option>
+<option value="Reunion">Réunion</option>
+<option value="Romania">Romania</option>
+<option value="Russian Federation">Russian Federation</option>
+<option value="Rwanda">Rwanda</option>
+<option value="Saint Helena">Saint Helena</option>
+<option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
+<option value="Saint Lucia">Saint Lucia</option>
+<option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
+<option value="Saint Vincent and the Grenadines">Saint Vincent & Grenadines</option>
+<option value="Samoa">Samoa</option>
+<option value="San Marino">San Marino</option>
+<option value="Sao Tome and Principe">Sao Tome and Principe</option>
+<option value="Saudi Arabia">Saudi Arabia</option>
+<option value="Senegal">Senegal</option>
+<option value="Serbia">Serbia</option>
+<option value="Seychelles">Seychelles</option>
+<option value="Sierra Leone">Sierra Leone</option>
+<option value="Singapore">Singapore</option>
+<option value="Slovakia">Slovakia</option>
+<option value="Slovenia">Slovenia</option>
+<option value="Solomon Islands">Solomon Islands</option>
+<option value="Somalia">Somalia</option>
+<option value="South Africa">South Africa</option>
+<option value="South Georgia">South Georgia & S. Sandwich Is.</option>
+<option value="Spain">Spain</option>
+<option value="Sri Lanka">Sri Lanka</option>
+<option value="Sudan">Sudan</option>
+<option value="Suriname">Suriname</option>
+<option value="Svalbard and Jan Mayen Islands">Svalbard & Jan Mayen Is.</option>
+<option value="Swaziland">Swaziland</option>
+<option value="Sweden">Sweden</option>
+<option value="Switzerland">Switzerland</option>
+<option value="Syria">Syria</option>
+<option value="Taiwan">Taiwan</option>
+<option value="Tajikistan">Tajikistan</option>
+<option value="Tanzania">Tanzania</option>
+<option value="Thailand">Thailand</option>
+<option value="Togo">Togo</option>
+<option value="Tokelau">Tokelau</option>
+<option value="Tonga">Tonga</option>
+<option value="Trinidad and Tobago">Trinidad and Tobago</option>
+<option value="Tunisia">Tunisia</option>
+<option value="Turkey">Turkey</option>
+<option value="Turkmenistan">Turkmenistan</option>
+<option value="Turks and Caicos Islands">Turks & Caicos Islands</option>
+<option value="Tuvalu">Tuvalu</option>
+<option value="Uganda">Uganda</option>
+<option value="Ukraine">Ukraine</option>
+<option value="United Arab Emirates">United Arab Emirates</option>
+<option value="United Kingdom">United Kingdom</option>
+<option value="United States of America">United States of America</option>
+<option value="Uruguay">Uruguay</option>
+<option value="Uzbekistan">Uzbekistan</option>
+<option value="Vanuatu">Vanuatu</option>
+<option value="Vatican City">Vatican City</option>
+<option value="Venezuela">Venezuela</option>
+<option value="Vietnam">Vietnam</option>
+<option value="Virgin Islands (British)">Virgin Islands (British)</option>
+<option value="Virgin Islands (US)">Virgin Islands (US)</option>
+<option value="Wallis and Futuna Islands">Wallis and Futuna Islands</option>
+<option value="Western Sahara">Western Sahara</option>
+<option value="Yemen">Yemen</option>
+<option value="Zaire">Zaire</option>
+<option value="Zambia">Zambia</option>
+<option value="Zimbabwe">Zimbabwe</option>
+</select>
+END
+}
+
 1;


More information about the LON-CAPA-cvs mailing list