Home  |  Linux  | Mysql  | PHP  | XML
From:Adam Jimerson Date:Thu Jan  7 16:01:49 2010
Subject:Need help with a login script
I know this topic is beaten to death, and then some, but I was
wondering if someone could help me figure out what is wrong with my
login script.  No matter if I try to login with a valid credentals or
not it says that the login has failed.  I'm sure it has something to
do with the way that I am compairing what the user provides with what
is in the database but I can't figure out exactly what it is.

Here is my working code:

#!/usr/bin/perl -T
use warnings;
use strict;
use diagnostics;
use CGI qw(:standard);
use DBI;
BEGIN {
	$|=1;
	use CGI::Carp('fatalsToBrowser');
}
delete @ENV{ 'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
my @user; #@user deals with username and password in this case
my $dbh;
sub db_connect {
	use constant username => 'AmeriVista';
	use constant password => 'pfVjBaseBNCD42GV';
	my $database = 'VistaCloud';
	my $server = 'localhost';
	my $errors;

	my $dsn = "DBI:mysql:database=$database;host=$server;port=3306" ||
die "Couldn't Connect to the Database: $!";
	$dbh = DBI->connect($dsn, username, password, {RaiseError => 1}) ||
die "Couldn't authenticate to the Database: $!";
}

db_connect ();
my $cookie = cookie(-name=>'sessionID',
			-value=>@user,
			-expires=>'+2h',
			-path=>'/cgi-bin',
			-domain=>'vendion.dyndns.org',
			-secure=>1);
print header(-cookie=>$cookie);
print start_html (-title=>"AmeriVista Event Logging",
			-author=>'vendion@vendion.net');
print "<h1>AmeriVista Event Logging</h1>\n";
print "<hr>";
if (param) {
	form_verify (@user);
	print "Username: $user[0]\n<br />Password: $user[1]<br />\n"; #use
for debugging
	my $sth = $dbh->prepare("SELECT * FROM Users WHERE 'UserName' = '$user
[0]' AND 'Password' = '$user[1]'"); #check that username and password
exist and match
	$sth->execute();
	my @Login = $sth->fetchrow_array();
	$sth->finish();
	if (($Login[2] eq "$user[0]") && ($Login[3] eq "$user[1]")) {
		print "<p>Hello $user[0]!</p>\n"; #debugging use only, will add on
later
	} else {
		print "<p>Login Failed!</p>\n";
		print "Username:  $user[0]\n<br />Password: $user[1]\n"; #use for
debugging
	}
} else {
	print start_form;
	print_form();
	print end_form, "\n";
}

sub form_verify {
	$user[0] = param('UserName');
	if ( $user[0] =~ /^([-\@\w.]+)$/ ) {
		$user[0] = $1;
	} else {
		die "Incorrect username format given";
	}
	$user[1] = param('Password');
	if ( $user[1] =~ /^([-\@\w.]+)$/ ) {
		$user[1] = $1;
	} else {
		die "Incorrect password format given";
	}
	return @user;
}

sub print_form {
	print "<div align='center'>\n";
	print "<table width='25%' border=1 summary='Log in'>\n";
	print "<td align='left' valign='middle'>\n";
	print "<p>Login Data</p>\n";
	print "<p>Username: ", textfield(-name=>'UserName',
				-maxlength=>120), "\n";
	print "<br>\n";
	print "Password:  ", password_field(-name=>'Password',
				-maxlength=>120), "</p>\n";
	print "<a href=\"register.cgi\" title=\"Click here to register!
\">Click Here to Register!</a>\n";
	print "<br>\n";
	print submit(-name=>'Submit_Form',
		-value=>'Submit');
	print reset, "\n";
	print "</td>\n";
	print "</table>\n";
	print "</div>\n";
}

print end_html, "\n";

To see it in action I have it uploaded at http://vendion.dyndns.org/cgi-bin/index.cgi
Username: test
Password: password

Navigate in group perl.beginners.cgi at sever nntp.perl.org
Previous Next


Your recent visits
RE: [PHP-WIN] What about php 5.3 and printers or PHP_PRINTER.DLL ?
Re: Need help with a login script
there is no php-cgi
Re: [PHP] php selecting multiple stylesheets
Re: [PHP-DB] Storing images


  
© No Copyright
You are free to use Anything
Site Maintained by Zareef Ahmed
Powered By PHP Consultants