mtWeb > Download > PHP Login Script

<?php
/* $Id: login.php,v 1.1 2002/09/20 20:01:18 shaggy Exp $ */

    
if ($_SESSION['logged']) {
        
redirect('/user/');
    }

    require_once
'html_form.php';
    
$form = new Form(uri_self());

    
$form->addText('username', 'Username');
    
$form->addPassword('password', 'Password');
    
$form->addCheckbox('remember', 'Remember me');

    
$form->addSubmit('Log in');

    
$form->addRule('username', 'range:5:20', 'Enter your username, 5 - 20 characters.');
    
$form->addRule('password', 'range:5:20', 'Enter your password, 5 - 20 characters.');

    
$form->addFilter('_ALL_', 'db');

    if (
$form->valid()) {
        
$processed = $form->getProcessed();
        
$remember = $form->getValue('remember');

        if (!isset(
$_SESSION['login'])) {
            
$_SESSION['login'] = 3;
        } else {
            if (
$_SESSION['login'] <= 1) {
                die(
'You cannot log in.');
            }
        }

        if (
$user->_checkLogin($processed['username'], $processed['password'], $remember)) {
            if (isset(
$_SESSION['log_to'])) {
                
redirect($_SESSION['log_to']);
            } else {
                
redirect('/user/');
            }
        } else {
            
failed($form);
        }

    } else {
        
begin_html();
        
$form->display();
    }

    function
failed(&$form) {
        
begin_html();
        echo
"<p>You could not be logged in, $_SESSION[login] attempts left.</p>
        <p>Possible reasons for this are:</p>

        <ul>
            <li>Your username and/or password is not correct.
                Check your username and password and then try again.</li>
            <li>You haven't"
.
            
'<a href="/user/signup" title="Sign up for an account, it is free">
            registered</a> yet</li>
            <li>Your account is temporarily disabled.</li>
            <li>You are trying to login simultaneously from two different computers or
            two browsers on the same computer.</li>
        </ul>'
;

        
$form->display();
    }
?>