<?xml version="1.0" encoding="windows-1252"?>
<node id="143311" title="Modify .htaccess files" created="2002-02-04 17:38:19" updated="2005-08-11 09:33:27">
<type id="1748">
sourcecode</type>
<author id="142528">
cjf</author>
<data>
<field name="doctext">
&lt;code&gt;
#!/usr/bin/perl -wT

use strict;
use CGI;
use Apache::Htpasswd;

my $q  = new CGI;
my $ht = new Apache::Htpasswd("/home/cjf/httpd/.htaccess");

my $username   = $q-&gt;param("username");
my $passwd     = $q-&gt;param("password");

my $action     = $q-&gt;param("action");
my $user       = $q-&gt;param("user");
my $new_passwd = $q-&gt;param("new_passwd");
my $old_passwd = $q-&gt;param("old_passwd");

if ($new_passwd eq '') {
    error("You didn't enter a password");
    exit;
}

my $valid_user = "cjf";
my $valid_passwd = "J10A1P16H8";

if (($username eq $valid_user) &amp;&amp; ($passwd eq $valid_passwd)) {

    if ($action eq "add") {
        $ht-&gt;htpasswd($user, $new_passwd);
    } elsif ($action eq "change_passwd") {
        $ht-&gt;htpasswd($user, $new_passwd, $old_passwd);
    } elsif ($action eq "delete_user") {
        $ht-&gt;htDelete($user);
    } else {
        error("No action was submitted.");
    }

} else {
    error("Login Incorrect.");
}

sub error {
    my $error = shift;
    print $q-&gt;header("text/html"),
          $q-&gt;start_html("Error"),
	  $q-&gt;h1("Error"),
	  $q-&gt;p("$error"),
	  $q-&gt;end_html;
}
&lt;/code&gt;</field>
<field name="codedescription">
Uses Apache::Htpasswd to add, delete, or change the password of a user in a .htaccess file. User input is web-based using forms, includes an authorization check.</field>
<field name="codecategory">
Web Stuff</field>
<field name="codeauthor">
/msg cjf</field>
</data>
</node>
