#!/usr/local/bin/perl
#!/usr/local/bin/perl5.00452
use CGI qw(:standard);

$name = param('ID');
$pass = param('PASSWORD');
$r1 = param('R1');

sub DirFiles
{
  my $Dir = $_[0];
  my @files;

  opendir(DIR, $Dir) || return ();
  @files = readdir(DIR);
  closedir(DIR);
  @files;
}

print header();

# The routine for create socket and binding server and client.

  ($d1, $d2, $prototype) = getprotobyname("tcp");

  ($d1, $d2, $d3, $d4, $rawclient) = gethostbyname("nthucad");
  ($d1, $d2, $d3, $d4, $rawserver) = gethostbyname("nthucad");

   $clientaddr = pack ("Sna4x8", 2, 0, $rawclient);
   $serveraddr = pack ("Sna4x8", 2, 110, $rawserver);

   socket (SOCKET, 2, 1, $prototype) || die ("No Socket\n");
   bind (SOCKET, $clientaddr) || die ("Can't bind\n");
   connect (SOCKET, $serveraddr);

   select(SOCKET);
   $| = 1;
   select(STDOUT);
   
   $line = <SOCKET>;
   print SOCKET "user $name\r\n";
   $line = <SOCKET>;
   print SOCKET "pass $pass\r\n";
   $line = <SOCKET>;
   ($state, $msg) = split(/ /, $line, 2);

   print SOCKET "quit\r\n";
   $line = <SOCKET>;
    
   close(SOCKET);

   if ($state eq "+OK") {
     if ($r1 eq "V1") {
       
# Process the form if there is a file name entered.

print "<HTML>";
print 
 "<form method=POST action=\"http://nthucad.cs.nthu.edu.tw/cgi-bin/cgiwrap?user=webmaster&script=list4cad.cgi\">
<BODY BGCOLOR=#FFFFFF BACKGROUND=\"/~cadmate/BrickWall.gif\">
<INPUT TYPE=HIDDEN NAME=\"ID\" VALUE=\"$name\">
<CENTER><H2>Hello! $name</H2></CENTER>
<H2>Way 1:</H2>
<H2>查詢全部同學部份資料</H2>
<hr><br>
<CENTER>請按下你需要的選項
<table border=1 cellpadding=0 cellspacing=0 width=576 height=83>
    <tr>
      <td width=260 height=21>中文姓名</td>
      <td width=316 height=21>
      <input type=checkbox name=\"E_NAME\" value=\"ON\">英文姓名</td>
    </tr>
    <tr>
      <td width=260 height=20>
      <input type=checkbox name=\"BBCALL\" value=\"ON\">B. B. Call</td>
      <td width=316 height=20>
      <input type=checkbox name=\"HANDPHONE\" value=\"ON\">大哥大</td>
    </tr>
    <tr>
      <td width=260 height=21>
         <input type=checkbox name=\"O_ADDRESS\" value=\"ON\">地址(公/學)</td>
      <td width=316 height=21>
         <input type=checkbox name=\"O_TEL\" value=\"ON\">電話(公/學)</td>
    </tr>
     <tr>
      <td width=260 height=21>
         <input type=checkbox name=\"C_ADDRESS\" value=\"ON\">地址(通訊)</td>
      <td width=316 height=21>
         <input type=checkbox name=\"C_TEL\" value=\"ON\">電話(通訊)</td>
    </tr> 
    <tr>
      <td width=260 height=21>
         <input type=checkbox name=\"H_ADDRESS\" value=\"ON\">地址(家)</td>
      <td width=316 height=21>
        <input type=checkbox name=\"H_TEL\" value=\"ON\">電話(家)</td>
    </tr>
    <tr>
      <td width=260 height=21>
         <input type=checkbox name=\"EMAIL\" value=\"ON\">E-Mail</td>
      <td width=316 height=21>
         <input type=checkbox name=\"HOMEPAGE\" value=\"ON\">Homepage</td>
    </tr>
  </table>
  <p><input type=submit value=\"列出資料\" name=B1>
     <input type=reset value=\"清除查詢條件\"
  name=B2> </p>
</form></CENTER>";
print "<hr><br>\n";

print "<H2> Way 2:</H2>\n";
print "<H2>查詢單一同學資料</H2>\n";
print "<br><hr><br>\n";  
print "<CENTER>\n";
print
     "
  <FORM METHOD=POST ACTION=\"http://nthucad.cs.nthu.edu.tw/cgi-bin/cgiwrap?user=webmaster&script=detail4cad.cgi\">\n"
;

$member_count = 0;

print "<select name=ID size=1>\n";
 foreach $DirFile 
  (&DirFiles("/raid/web/cadmate")) 
 { 
   if (!($DirFile eq ".") && !($DirFile eq "..")) {
     $member_count++;
     $filename = "/raid/web/cadmate/" . $DirFile;
     open (FH, "$filename");
     $_=<FH>;
     ($d1, $C_NAME) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $E_NAME) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $BBCALL) = split(/:/, $_, 2);
     $_=<FH>; 
     ($d1, $HANDPHONE) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $O_TEL) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $O_ADDRESS) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $C_TEL) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $C_ADDRESS) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $H_TEL) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $H_ADDRESS) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $EMAIL) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $HOMEPAGE) = split(/:/, $_, 2); 
      print "<option value=\"$DirFile\">$C_NAME</option>"; 
   close (FH);
  }
 }
print "</SELECT>\n";
print "<INPUT TYPE=SUBMIT VALUE=\"查看\">\n";
print "</FORM>\n";
print "</CENTER>\n";
print "<hr><br>";
print "<CENTER><B>Ya! Now we have <B> $member_count </B>members.<B></CENTER>";
print "</BODY>";
print "</HTML>";
     }
     else {
       
foreach $DirFile 
  (&DirFiles("/raid/web/cadmate")) 
 { 
   if ($DirFile eq $name) {
     $filename = "/raid/web/cadmate/" . $DirFile;
     open (FH, "$filename");
     $_=<FH>;
     ($d1, $C_NAME) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $E_NAME) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $BBCALL) = split(/:/, $_, 2);
     $_=<FH>; 
     ($d1, $HANDPHONE) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $O_TEL) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $O_ADDRESS) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $C_TEL) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $C_ADDRESS) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $H_TEL) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $H_ADDRESS) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $EMAIL) = split(/:/, $_, 2);
     $_=<FH>;
     ($d1, $HOMEPAGE) = split(/:/, $_, 2);
 }
}
print "<HTML>\n";
print "<BODY BGCOLOR=\"#FFFFFF\">\n";
print "<CENTER>\n";
print "<H1>通訊錄更新</H1>\n";
print "<HR><BR>\n";
print "<CENTER>\n";
print "<TABLE BORDER=1>\n";
print "<FORM METHOD=\"POST\"";
print "ACTION=\"/cgi-bin/cgiwrap?user=webmaster&script=mate4cad.cgi\">";
print "<input type=hidden name=ID value=\"$name\">";
print "<Tr><Td>中文姓名<Td><INPUT TYPE=TEXT NAME=\"C_NAME\" VALUE=\"$C_NAME\" SIZE=20>";
print "<Tr><Td>英文姓名<Td><INPUT TYPE=TEXT NAME=\"E_NAME\" VALUE=\"$E_NAME\" SIZE=20>";
print "<Tr><Td>B.B.Call<Td><INPUT TYPE=TEXT NAME=\"BBCALL\" VALUE=\"$BBCALL\" SIZE=20>"; 
print "<Tr><Td>大哥大<Td><INPUT TYPE=TEXT NAME=\"HANDPHONE\" 
 VALUE=\"$HANDPHONE\" SIZE=20>"; 
print "<Tr><Td Colspan=2 BGCOLOR=#0000FF><FONT COLOR=#FFFFFF>
 <B>公:辦公室; 學:學校(實驗室) 白天可以聯絡到的資料</B>";
print "<Tr><Td>電話(公/學)<Td><INPUT TYPE=TEXT NAME=\"O_TEL\" VALUE=\"$O_TEL\" SIZE=40>";
print "<Tr><Td>住址(公/學)<Td><INPUT TYPE=TEXT NAME=\"O_ADDRESS\" VALUE=\"$O_ADDRESS\" SIZE=60>";
print "<Tr><Td Colspan=2 BGCOLOR=#0000FF><FONT COLOR=#FFFFFF>
 <B>通訊:外宿或宿舍 晚上可以聯絡到的資料</B>";
print "<Tr><Td>電話(通訊)<Td><INPUT TYPE=TEXT NAME=\"C_TEL\" VALUE=\"$C_TEL\" S
IZE=40>";
print "<Tr><Td>住址(通訊)<Td><INPUT TYPE=TEXT NAME=\"C_ADDRESS\"
VALUE=\"$C_ADDRESS\" 
SIZE=60>";
print "<Tr><Td Colspan=2 BGCOLOR=#0000FF><FONT COLOR=#FFFFFF>
 <B>電話(家), 住址(家) 請填寫永久住址</B>";
print "<Tr><Td>電話(家)<Td><INPUT TYPE=TEXT NAME=\"H_TEL\" VALUE=\"$H_TEL\" SIZE=20>";
print "<Tr><Td>住址(家)<Td><INPUT TYPE=TEXT NAME=\"H_ADDRESS\" VALUE=\"$H_ADDRESS\" SIZE=40>";
print "<Tr><Td Colspan=2 BGCOLOR=#0000FF><FONT COLOR=#FFFFFF>
 <B>請用逗號','分隔兩個以上的 E-Mail Address 與 Homepage 網址</B>";
print "<Tr><Td>E-Mail<Td><INPUT TYPE=TEXT NAME=\"EMAIL\" VALUE=\"$EMAIL\" SIZE=60>";
print "<Tr><Td>Homepage<Td><INPUT TYPE=TEXT NAME=\"HOMEPAGE\" VALUE=\"$HOMEPAGE\" SIZE=60>"; 
print "</TABLE>";
print "<br>";
print "<hr>";
print "<br>";
print "<INPUT TYPE=submit value=\"資料送出\"><Td><INPUT TYPE=reset value=\"清除\">"; 
print "</FORM>";
print "</TABLE>";
print "</CENTER>";
print "</HTML>";
     }
   }

   else {
      print "<html>\n";
      print "<BODY BGCOLOR=#FFFFFF>\n";
      print "<CENTER>\n";
      print "<H1>此為私人網頁，閒雜人等</H1>\n";
      print "<H1>         請勿進入     </H1>\n";
      print "<H1>This is a private webpage</H1>\n";
      print "<H1> Please don't enter without permission<H1>\n";
      print "</CENTER>\n";
      print "</html>\n";
   }

