Updated on

Perl CGI Example Login Script

A simple example perl CGI login script for you to get started with.
#!/usr/bin/perl

# Example Perl CGI Login 1.0
# Author: Douglas Palovick
# License: GPL http://www.gnu.org/licenses/gpl.txt

use CGI;

$upload_form = new CGI;
print $upload_form->header,
        $upload_form->start_html('Login');

print $upload_form->start_form();

## for testing purpose
print $upload_form->param, $upload_form->p();
print $upload_form->param_fetch('username')->[0], 
                                 $upload_form->p();
print $upload_form->param_fetch('passwd')->[0], 
                                 $upload_form->p();


$upload_form->import_names('upload_form_names');

if (!$upload_form_names::username or
            !$upload_form_names::passwd) {
    printLogin();
    }
elsif ($upload_form_names::username eq 'foo'
        and $upload_form_names::passwd  eq 'bar') {
    # The below line is where you would have this script
    # set a cookie and forward the user to the members
    #  area.
    print 'YAY';  }
else {
    # The below line where you would put
    # whatever you want for bad user/pass
    # combinations.
    print 'NAY'; }

print $upload_form->end_html;

sub printLogin
{
    print 'username: ',
        $upload_form->textfield({-name=>'username',
               # -default=>'nunya',
                -size=>20,
                -maxlength=>20});

    print $upload_form->p();

    print 'password ',
        $upload_form->password_field({-name=>'passwd',
                #-value=>'nunya',
                -size=>20,
                -maxlength=>20});
    print $upload_form->p();
    print $upload_form->submit({-name=>'login_btn',
                -value=>'Login'});

    print $upload_form->end_form();

    print $upload_form->end_html;
}