<?php require('template.hack');
/*
authtest.hack---Basic authentication tester.
Chris K. Young <cky@pobox.com>, December 2004.
$Id: authtest.hack,v 1.1 2004/12/05 16:39:14 cky Exp $

Copyright (c) 2004 Chris K. Young. All rights reserved.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public Licence as published by
the Free Software Foundation; either version 2 of the Licence, or (at
your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public Licence for more details.

You should have received a copy of the GNU General Public Licence
along with this program; if not, write to Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
*/

class authtest {
    var 
$tmpl;

    function 
print_header() {
        
ob_start();
        
$this->tmpl = new template('Basic authentication tester');
        
$this->tmpl->set_rcsid('$Id: authtest.hack,v 1.1 2004/12/05 16:39:14 cky Exp $');
        
$this->tmpl->print_header();
    }

    function 
validate_input() {
        return isset(
$_SERVER['PHP_AUTH_PW']) && (!isset($_POST['reset']) || strcmp($_POST['reset'], $_SERVER['PHP_AUTH_USER']) != 0);
    }

    function 
process_input() {
        
ob_end_flush();
?>
<p>You submitted the following the authentication information:</p>
<dl>
<dt>User:</dt><dd><?php print(htmlspecialchars($_SERVER['PHP_AUTH_USER'])); ?></dd>
<dt>Password:</dt><dd><?php print(htmlspecialchars($_SERVER['PHP_AUTH_PW'])); ?></dd>
</dl>
<p>If you like, you can reset the information and re-authenticate:</p>
<form action="<?php print($_SERVER['PHP_SELF']); ?>" method="post">
<input type="hidden" name="reset" value="<?php print(htmlspecialchars($_SERVER['PHP_AUTH_USER'])); ?>" />
<input type="submit" value="Re-authenticate" />
</form>
<?php
    
}

    function 
print_form() {
        
header('Status: 401 Unauthorized');
        
header('WWW-Authenticate: Basic realm="Basic authentication tester"');
        
ob_end_flush();
?>
<p>This is an authentication tester. You can use any user name and password you like.</p>
<?php
    
}

    function 
print_footer() {
        
$this->tmpl->print_footer();
    }
}
?>