Perl Login Script

Dan Brown plug-discuss@lists.plug.phoenix.az.us
Mon, 11 Feb 2002 14:20:15 -0700


Along with the things Victor mentioned here are a few other suggestions .

1. Always use 'use strict'.  It will save you time now and more important, 
later when the script gets to production.

2. I always checked for 'definedness' and existence (for hashes) of a value 
before using them.  It will save you from error messages like 'undefined 
variable' and it's good to be sure.

This  is probably going beyond what you're doing but for future reference....

Depending on where you are using this and how, you may want to look into 
loading just the routines from CGI.pm that you use in the script.  That is

   use CGI qw/ param header start_html/;

just as an example.

There's alot more I could go into but it's probably much more than what you 
need right now.  I've been working with Apache/mod_perl for a couple of years 
now (and with Perl itself for much longer) so if you have any questions or 
need help, feel free to contact me off list.

Dan

On Monday 11 February 2002 11:57 am, you wrote:
> What is wrong here... I need to validate an name=>password pair, from a
> form submission.
>
> script:
> ----------------------------------
>
> #!/usr/local/bin/perl -w
> # CGI script that creates a fill-out form
> # and echoes back its values.
> use CGI qw/:standard/;
> $q=new CGI;                        # create new CGI object
> %authusers = ('user','password','friend','foe');
>
> if( $q->param('dempwd') == $authusers{$q->param('demid')} ) {
>
> print $q->header,                    # create the HTTP header
>        $q->start_html("Hello $1" ), # start the HTML
>        $q->h1('You are authorized...'),         # level 1 header
> 	$authusers{$q->param('demid')},
> 	$q->param('name'),
>        $q->end_html;                  # end the HTML
>
> }
> else
> {
> print $q->header,$q->start_html("else"),
> 	$q->h1('Failed...'),
> 	$q->end_html;
> }
>
> ---------------------------------------
> and here is the form submission...
> ---------------------------------------
> <form name="login" method="post" action="logint.pl">
>    <p> Demonstrator's ID
>      <input type="text" name="demid">
>    </p>
>    <p>Password
>      <input type="password" name="dempwd" size="20">
>      <input type="submit" name="Login" value="Log In">
>    </p>
> </form>
>
> ________________________________________________
> See http://PLUG.phoenix.az.us/navigator-mail.shtml if your mail doesn't
> post to the list quickly and you use Netscape to write mail.
>
> PLUG-discuss mailing list  -  PLUG-discuss@lists.plug.phoenix.az.us
> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss