#!/usr/local/bin/perl ########################################################################### # signin: Sign in to Nile.com # Introducing cookies (this Perl script stores cookies) ########################################################################### use CGI "param"; if ( ! param() ) { # if there are NO input fields $first_time = 'Y'; # it must be first time around } else { # otherwise $first_time = 'N'; # it's not the first time around $userid = param('userid'); # get form input for userid $pswd = param('pswd'); # get form input for password $saveid = param('saveid'); # get form input for save id &test_input(); # test the input fields &validate_user(); # authenticate user } if ($first_time eq 'Y' || $msg ne '') { # if first time or there are errors &print_form(); # print the sign-in form } else { # if there are no error messages &set_cookie(); # set userid cookie &print_menu(); # print Nile.com menu } exit(0); ########################################################################### sub print_form { if ($saveid eq 'Y') {$checked = "CHECKED";} print "Content-type: text/html \n"; print "\n"; print < Nile.com - Sign In
Welcome to Nile.com
Please Sign In



Sign In
Enter your user id
Enter your password
Save user id?

$msg
END } ########################################################################### sub test_input { if ($pswd eq '') { $msg = 'Please enter your password!'; } if ($userid eq '') { $msg = 'Please enter your user id!'; } } ############################################################################### sub validate_user { return if($msg); open (CUSTOMER, "< ../../data/nile.cust.file") || print ("Cannot open file - $!"); while ($rec = ) { ($DBuserid,$DBpswd) = split(":", $rec); if ($userid eq $DBuserid) { $found = 'Y'; last; # break out of the loop } } if ($pswd ne $DBpswd) { $msg = 'Password Incorrect. Please Retype!'; } if ($found eq '') { $msg = 'User Not on file. Please Register first!'; } close (CUSTOMER); } ############################################################################## sub set_cookie { print "Set-Cookie: custid=$userid; path=/"; #save cookie if ($saveid eq 'Y') { print "; expires=Fri, 31-Dec-2005 23:59:59 GMT"; #with expiration } print "\n"; } ########################################################################### sub print_menu { print "Content-type: text/html \n"; print "\n"; open(HTML, "<../../web/demo/perl/nileMenu.html") || print ("Cannot open file - $!"); while ($line = ) { #print menu html print $line; } close(HTML); } ###########################################################################