<PRE>
#! /usr/local/bin/perl

$passfile =&quot;/usr/local/web/magazine/.htpasswd&quot;;
$htpasswd =&quot;/usr/local/web/cgi-bin/htpasswd.pl&quot;;
$referer =&quot;passwd.html&quot;;
$private_area =&quot;magazine/magazine.html&quot;;

if ($ENV{'REQUEST_METHOD'} eq 'POST')
{
     read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
     @pairs = split(/&amp;/, $buffer);
     foreach $pair (@pairs)
     {
          ($name, $value) = split(/=/, $pair);
          $value =~ tr/+/ /;
          $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(&quot;C&quot;, hex($1))/eg;
          $contents{$name} = $value;

     }
}

chop($date = `date`);

print &quot;Content-type: text/html\n\n &quot;;
open (HTFILE, &quot;$passfile&quot;);
  until (eof (HTFILE))
  {
     $line =&lt;HTFILE&gt;;
       chop ($line);
       if ($line =~ /$contents{'username'}/)
     {

     close (HTFILE);

     print &lt;&lt;&quot;HTML&quot;;
     &lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;Sorry, user exists&lt;/TITLE&gt;&lt;/HEAD&gt;
     &lt;BODY&gt;
     &lt;H1&gt;Username: \&quot;$contents{'username'}\&quot; already exists!&lt;/H1&gt;
     &lt;p&gt;
     Please select a different username to use.
     &lt;p&gt;&lt;HR&gt;
     &lt;a href=\&quot;$referer\&quot;&gt;Return to registration page&lt;/a&gt;
     &lt;/BODY&gt;&lt;/HTML&gt;
HTML
die;

     }
  }

open(HTPASSWD, &quot;|$htpasswd $passfile $contents{'username'}
&gt;/dev/null 2&gt;&amp;1&quot;);
print HTPASSWD &quot;$contents{'password'}\n&quot;;
close(HTPASSWD);

print &lt;&lt;&quot;HTML&quot;;
&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;Entry successful&lt;/TITLE&gt;&lt;/HEAD&gt;
&lt;BODY&gt;
&lt;H1&gt;Entry successful!&lt;/H1&gt;
&lt;p&gt;
&lt;hr&gt;
&lt;p&gt;
&lt;H2&gt;You may now view our special online magazine!&lt;/H2&gt;
Simply click the link below and then enter your username, 
&lt;b&gt;$contents{'username'}&lt;/b&gt; and your private password when asked.

&lt;p&gt;
Thank you for registering with us!&lt;p&gt;
Enjoy!!
&lt;p&gt;
&lt;HR&gt;
&lt;A HREF=\&quot;$private_area\&quot;&gt;Go read the magazine!!&lt;/A&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;
HTML

exit;
</PRE>