The following subroutine is one I'm using as a simple password protection
for a web page - it works fine on my NT platform but on a unix one it isn't.
I have commented out the debug bit and included the output in the email
(bottom) and as you can see the $crypt and $pass are the same - so my
question is why does the script think the if ($crypt ne $pass) is true???
and just on unix - as on NT its gets it as false!!
Any help would be much appreciated,
Matt
sub logon {
my ($q)=@_;
my $method = 'POST';
my $action = "$script";
my $encoding = $CGI::URL_ENCODED; #
application/x-www-form-urlencoded!
open (PASSIN, "$root/pass.conf");
my $line = <PASSIN>;
close (PASSIN);
chomp($line);
my ($name, $pass) = split(/:/, $line);
# If the name given doesn't match the name in the file or the
password given
# doesn't match the name in the file, print a message and exit. The
code for
# encrypting the password according to its first two characters was
taken
# from Matt's WWWBoard Admin script... because it is good.
my $user = $q->param('name');
my $password = $q->param('secret');
my $crypt = crypt($password, substr($password, 0, 2));
if ($crypt ne $pass) {
print $q->header,
$q->start_html('Blog It'),
$q->h3('Invalid Name/Password'),
$q->p('The name and password combination you have
given is invalid.'),
#the following is for debug purposes - see the
password
$q->br("user=$user"),
$q->br("password=$password"),
$q->br("crypt=$crypt"),
$q->br("name=$name"),
$q->br("pass=$pass"),
#finish debug info
$q->startform(-method=>$method,
-action=>$action,
-enctype=>$encoding),
#form info goes here
$q->textfield(-name=>'name',
-default=>'admin',
-size=>20,
-maxlength=>80),
$q->br,
$q->password_field(-name=>'secret',
-value=>'',
-size=>20,
-maxlength=>80),
$q->br,
$q->hidden(-name=>'user',
-default=>['ok']),
$q->submit('action', 'enter'),
#$q->submit('action', 'seevars'),
$q->reset(),
$q->endform,
$q->p,
$q->a({href=>'blog.cgi'},"view the journal"),
$q->end_html;
exit;
}else{
#set a cookie so that the script nows that the person has
logged on
my $cookie = $q->cookie(-name=>'open',
-value=>'sesame');
print $q->header(-cookie=>$cookie),
$q->start_html,
$q->br('Correct Password');
#the password is correct
#print $q->p("correct Password");
#&menu($q);
#print $q->p();
#print $q->end_html;
}
}
output:
user=admin
password=matt
crypt=ma5XgjSoDieYE
name=admin
pass=ma5XgjSoDieYE
_______________________________________________
Perl-Win32-Web mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/perl-win32-web