Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!C:/Perl64/bin/perl.exe
- # -- INCLUDES -- #
- use CGI;
- use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
- use Crypt::SaltedHash;
- use strict;
- use warnings;
- require 'dbconnect.pm';
- # -- DECLARE VARIABLES AND SET INITIAL VALUES -- #
- my ($error_message);
- my $form = CGI->new;
- my ($company) = uc( $form->param('company') );
- my ($contact) = uc( $form->param('contact') );
- my ($street1) = uc( $form->param('street1') );
- my ($street2) = uc( $form->param('street2') );
- my ($city) = uc( $form->param('city') );
- my ($state) = uc( $form->param('state') );
- my ($zip) = $form->param('zip');
- my ($phone1) = $form->param('phone1');
- my ($phone2) = $form->param('phone2');
- my ($email) = lc( $form->param('email') );
- my ($email2) = lc( $form->param('email2') );
- my ($password) = $form->param('password');
- my ($password2) = $form->param('password2');
- chomp(
- $company, $contact, $street1, $street2, $city,
- $state, $zip, $phone1, $phone2, $email,
- $email2, $password2, $password
- );
- my $salted = $password;
- my $secret = $contact;
- # -- STRIP INVALID CHARACTERS FROM ENTRIES -- #
- $company =~ s/[^a-zA-Z0-9\-\&\s]*//g;
- $contact =~ s/[^a-zA-Z\s]*//g;
- $street1 =~ s/[^a-zA-Z0-9\.\s]*//g;
- $street2 =~ s/[^a-zA-Z0-9\.\s]*//g;
- $city =~ s/[^a-zA-Z\s]*//g;
- $state =~ s/[^A-Z]*//g;
- $zip =~ s/[^0-9-]*//g;
- $phone1 =~ s/[^0-9]*//g;
- $phone2 =~ s/[^0-9]*//g;
- $email =~ s/[^a-zA-Z0-9\-\.\@]*//g;
- # -- VALIDATE EMAIL AND PASSWORD ENTRIES -- #
- sub isvaliddate {
- if ( $email =~ /^(\w¦\-¦\_¦\.)+\@((\w¦\-¦\_)+\.)+[a-zA-Z]{2,}$/ ) {
- return 1;
- }
- else {
- $error_message .=
- "The Email Address you entered is invalid. Emails should look like <i>Example\@host.net</i>. \n\n";
- return;
- }
- if ( $email2 =~ /^(\w¦\-¦\_¦\.)+\@((\w¦\-¦\_)+\.)+[a-zA-Z]{2,}$/ ) {
- return 1;
- }
- else {
- $error_message .=
- "The Email Address you entered is invalid. Emails should look like <i>Example\@host.net</i>. \n\n";
- return;
- }
- if ( $email = $email2 ) {
- return 1;
- }
- else {
- $error_message .=
- "Your email addresses don't match. Please verify them and resubmit the form. \n \n";
- return;
- }
- if ( $password = $password2 ) {
- return 1;
- }
- else {
- my $error_message .= "Your passwords do not match.";
- return;
- }
- # -- Other IF statements go here for validating. -- #
- }
- #-- SALT PASSWORD--#
- # ALGORITHMS: SHA-1, SHA256, SHA-384
- my $csh = Crypt::SaltedHash->new( algorithm => 'SHA-1' );
- $csh->add($secret);
- my $salted = $csh->generate;
- my $valid = Crypt::SaltedHash->validate( $salted, $secret );
- # -- PRINT CONTENT TYPE AND EXPORT TO BROWSER -- #
- print "content-type: text/html \n\n";
- if ( $error_message = '' ) {
- print
- "Company: $company<br>Contact: $contact<br>Street1: $street1<br>Street2: $street2<br>City: $city<br>State: $state<br>Zip: $zip<br>Phone1: $phone1<br>Phone2: $phone2<br>Email: $email<br>Password: $password<br>Salted: $salted<br>Secret: $secret<br>Valid: ";
- if ( $valid = '1' )
- {
- print "True";
- }
- else
- {
- print "False";
- }
- }
- else
- {
- print qq~<h1>
- <font color="red">
- $error_message
- </font>
- </h1>
- <form method="post" action="cgi-bin/compreg.pl">
- <table>
- <tr>
- <td>
- Company Name: <input type="text" name="company" length="20" maxlength="50" value="$company">*
- </td>
- <td>
- Contact Name: <input type="text" name="contact" length="20" maxlength="75" value="$contact">*
- </td>
- </tr>
- <tr>
- <td>
- Street Address: <input type="text" name="street1" length="20" maxlength="50" value="$street1">*
- </td>
- <td>
- PO Box / Suite: <input type="text" name="street2" length="20" maxlength="50" value="$street2">
- </td>
- </tr>
- <tr>
- <td>
- City: <input type="text" name="city" length="20" maxlength="50" value="$city">*
- </td>
- <td>
- State: <input type="text" name="state" length=20" maxlength="2" value="$state">*
- </td>
- </tr>
- <tr>
- <td>
- Zipcode: <input type="text" name="zip" length="20" maxlength="10" value="$zip">*
- </td>
- <td>
- </td>
- </tr>
- <tr>
- <td>
- Primary Phone: <input type="text" name="phone1" length="20" maxlength="10" value="$phone1">*
- </td>
- <td>
- Alternate Phone: <input type="text" name="phone2" length="20" maxlength="10" value="$phone2">
- </td>
- </tr>
- <tr>
- <td>
- Email: <input type="text" name="email" length="20" maxlength="50" value="$email">*<br>
- Verify: <input type="text" name="email2" length="20" maxlength="50" value="$email2">*
- </td>
- <td>
- Password: <input type="password" name="password" length="20" maxlength="20">*<br>
- Verify: <input type="password" name="password2" length="20" maxlength="20">*
- </td>
- </tr>
- </table>
- <br>
- <input type="submit" value="Submit Application">
- </form>~;
- }
- 1;
Add Comment
Please, Sign In to add comment