#!/usr/bin/perl use strict; use CGI qw/:standard :html3 *table/; use DBI; require "functions.pl"; our ($dbh,$owneremail,$ownerdesc,$url_base,$sendmail,@reserved); my ($username,$password,$confirm,$salutation,$surname,$middle,$name,$email,$agree,$action); my ($sth,$rc,$query); my (@buff,@data,$buff); my @salutations=('Mr.','Mrs.','Ms.'); my $rndstr; # # # # # # # # # # # # # # # # # # # # Starting the job. # # # # # # # # # # # # # # # # # # # # Read basic param $action=(param('action'))?param('action'):""; if ( $action eq "Signup") { ### Reading params $username=(param('username'))?param('username'):""; $password=(param('password'))?param('password'):""; $confirm=(param('confirm'))?param('confirm'):""; $salutation=(param('salutation'))?param('salutation'):""; $surname=(param('surname'))?param('surname'):""; $middle=(param('middle'))?param('middle'):""; $name=(param('name'))?param('name'):""; $email=(param('email'))?param('email'):""; $agree=(param('agree'))?param('agree'):""; # checking params if (length($username)<4){ print_header('BizInc USA - Signup error.'); print_signup("","$password","$confirm","$salutation","$surname","$middle","$name","$email"); print "
Username is not defined or smaller than 4 characters. Please choose a different username.
\n"; print_footer(); exit(1); } else { if ($username =~ /[^A-Za-z0-9]/) { print_header('BizInc USA - Signup error.'); print_signup("","$password","$confirm","$salutation","$surname","$middle","$name","$email"); print "
Username can contain only letters and numbers.
\n"; print_footer(); exit(1); } } if (length($password)<6){ print_header('BizInc USA - Signup error.'); print_signup("$username","","","$salutation","$surname","$middle","$name","$email"); print "
Password is not defined or smaller than 6 characters.
\n"; print_footer(); exit(1); } if ($confirm ne $password){ print_header('BizInc USA - Signup error.'); print_signup("$username","","","$salutation","$surname","$middle","$name","$email"); print "
Sorry, but your passwords do not match.
\n"; print_footer(); exit(1); } if (length($salutation)<2){ print_header('BizInc USA - Signup error.'); print_signup("$username","$password","$confirm","","$surname","$middle","$name","$email"); print "
Please select your salutation.
\n"; print_footer(); exit(1); } if (length($surname)<2){ print_header('BizInc USA - Signup error.'); print_signup("$username","$password","$confirm","$salutation","","$middle","$name","$email"); print "
Please enter your first name.
\n"; print_footer(); exit(1); } if (length($middle)<1){ print_header('BizInc USA - Signup error.'); print_signup("$username","$password","$confirm","$salutation","$surname","","$name","$email"); print "
Please enter your middle initial.
\n"; print_footer(); exit(1); } if (length($name)<2){ print_header('BizInc USA - Signup error.'); print_signup("$username","$password","$confirm","$salutation","$surname","$middle","","$email"); print "
Please enter your last name.
\n"; print_footer(); exit(1); } if (length($email)<4){ print_header('BizInc USA - Signup error.'); print_signup("$username","$password","$confirm","$salutation","$surname","$middle","$name",""); print "
Email address is empty or not corectly defined.
\n"; print_footer(); exit(1); } else { if ($email !~ /\@/) { print_header('BizInc USA - Signup error.'); print_signup("$username","$password","$confirm","$salutation","$surname","$middle","$name",""); print "
Sorry but \"$email\" doesn't seems a valid email address.
\n"; print_footer(); exit(1); } } if ($agree ne "yes"){ print_header('BizInc USA - Signup error.'); print_signup("$username","$password","$confirm","$salutation","$surname","$middle","$name","$email"); print "
Please read the Network Members Agreement.
\n"; print_footer(); exit(1); } # Check if the user try to use a banned/reserved word. foreach (@reserved){ if($username eq $_){ print_header('BizInc USA - Signup error.'); print_signup("","$password","$confirm","$salutation","$surname","$middle","$name","$email"); print "
Sorry but \"$username\" is an reserved username. Please choose a different username.
\n"; print_footer(); exit(113); } } # Checking if the user already exists. db_connect(); $query="SELECT id FROM basic_auth WHERE username='".$username."'"; $sth = $dbh->prepare($query); if (!$sth) { print_error("[DBI]: Prepare Error Occured!",$DBI::errstr); db_disconnect(); exit(1); } $rc=$sth->execute; if (!$rc) { print_error("[DBI]: Execute Error Occured!",$DBI::errstr); $sth->finish(); db_disconnect(); exit(1); } @buff=$sth->fetchrow_array; if ($buff[0] && $buff[0] ne ""){ print_header('BizInc USA - Signup error.'); print_signup("","$password","$confirm","$salutation","$surname","$middle","$name","$email"); print "
This username is already used. Please choose a different username.
\n"; print_footer(); $sth->finish(); db_disconnect(); exit(2); } $rndstr=rand_str(16); my $a=quotemeta($username); my $b=quotemeta($password); my $c=quotemeta($surname); my $d=quotemeta($middle); my $e=quotemeta($name); my $f=quotemeta($email); $query="INSERT INTO basic_auth (username,password,salutation,surname,middle,name,email,create_date,random_string) VALUES ('$a','$b','$salutation','$c','$d','$e','$f',now(),'$rndstr')"; $sth = $dbh->prepare($query); if (!$sth) { print_error("[DBI]: Prepare Error Occured!",$DBI::errstr); db_disconnect(); exit(1); } $rc=$sth->execute; if (!$rc) { print_error("[DBI]: Execute Error Occured!",$DBI::errstr); $sth->finish(); db_disconnect(); exit(1); } # Sending notify Email. undef(@data); open(DATA,"text/step101.txt"); @data=; close(DATA); open (MAIL,"|$sendmail"); print MAIL "From: $ownerdesc <$owneremail>\n"; print MAIL "To: $name <$email>\n"; print MAIL "Subject: [BizIncUSA] Step 1 completed!\n\n"; foreach $buff (@data){ $buff=~ s/var_salutation/$salutation/g; $buff=~ s/var_firstname/$surname/g; $buff=~ s/var_middle/$middle/g; $buff=~ s/var_lastname/$name/g; $buff=~ s/var_username/$username/g; $buff=~ s/var_password/$password/g; $buff=~ s/var_urlbase/$url_base/g; $buff=~ s/var_rndstr/$rndstr/g; print MAIL "$buff"; } close(MAIL); undef(@data); open(DATA,"text/step102.txt"); @data=; close(DATA); print_header('BizInc USA - Sign Up Step 1 Completed'); print<<"HTML";

HTML foreach $buff (@data){ $buff=~ s/var_salutation/$salutation/g; $buff=~ s/var_firstname/$surname/g; $buff=~ s/var_middle/$middle/g; $buff=~ s/var_lastname/$name/g; $buff=~ s/var_username/$username/g; $buff=~ s/var_password/$password/g; $buff=~ s/var_urlbase/$url_base/g; $buff=~ s/var_rndstr/$rndstr/g; print "$buff"; } print<<"HTML";
Click here to get to the main page.
HTML print_footer(); $sth->finish(); db_disconnect(); } else { print_header('BizInc USA - New User Signup'); print_signup('','','','','','','',''); print_footer(); } # Local Subroutines sub rand_str{ my @chars=('a'..'z','0'..'9'); my $random_string; foreach (1..$_[0]) { $random_string.=$chars[rand @chars]; } return $random_string; } sub print_signup{ print<<"HTML";

HTML undef(@data); open(DATA,"text/step100.txt"); @data=; close(DATA); foreach $buff (@data){ print "$buff"; } print<<"HTML";
 Signup Information 
 Username:    
 Password:    
 Confirm Password:    
 Salutation:    
 First Name:    
 Middle Initial:    
 Last Name:    
 Email Address:    
   I have read the Network Members Agreement 
  
HTML }