#!/usr/local/bin/perl ########################################################################### # signin: Sign in to Nile.com # Introducing cookies (this Perl script stores cookies) ########################################################################### use CGI "param"; use DBI; 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  (SQL)
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); $dbh = DBI->connect("DBI:mysql:nile","nile","nile"); if (!defined($dbh)) { $msg = "Cannot open database connection - $DBI::errstr"; return; } $sql = "select cust_id, password from customer "; $sql .= " where cust_id = \'$userid\' "; $cursor = $dbh->prepare($sql); $rc = $cursor->execute(); ($DBcust_id, $DBpassword) = $cursor->fetchrow_array(); if ($pswd ne $DBpassword) { $msg = 'Password Incorrect. Please Retype!'; } if ($DBcust_id eq '') { $msg = 'User Not on file. Please Register first!'; } $dbh->disconnect(); } ############################################################################## 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/sql/nileMenu.html") || print ("Cannot open file - $!"); while ($line = ) { #print menu html print $line; } close(HTML); } ###########################################################################