Yankee: Brauche Hilfe bei login.cgi

Beitrag lesen

Hallo allezusammen ..!

ich habe mir überlegt, ein login script für den internen bereich meiner homepage zu machen. nun komm ich aber beim wichtigsten teil des scripts nicht weiter ..:

#!/usr/bin/perl

$AccessDenied = "http://www.az-clan.at/error/login/user_pass.html";
$AccessAllowed = "http://www.az-clan.at/intern/intern.html";
$ForeignCall = "http://www.az-clan.at/error/login/foreign_call.html";

#_______________________________________________________________

&Server;
&ReadParse;
$Username = $in{'user'};
$Password = $in{'pass'};
&CheckFields;
&AuthLogin;
print "Location: $AccessAllowed\n\n";
exit;

#_______________________________________________________________

sub ReadParse { local (*in) = @_ if @_;
local ($i, $key, $val); if ( $ENV{'REQUEST_METHOD'} eq "GET" )
{$in = $ENV{'QUERY_STRING'};}
elsif ($ENV{'REQUEST_METHOD'} eq "POST")
{read(STDIN,$in,$ENV{'CONTENT_LENGTH'});}
else {
$in = ( grep( !/^-/, @ARGV )) [0];
$in =~ s/\&/&/g; } @in = split(/&/,$in);
foreach $i (0 .. $#in) {
$in[$i] =~ s/+/ /g;
($key, $val) = split(/=/,$in[$i],2);
$key =~ s/%(..)/pack("c",hex($1))/ge;
$val =~ s/%(..)/pack("c",hex($1))/ge;
$in{$key} .= "\0" if (defined($in{$key}));
$in{$key} .= $val; } return length($in); }

#_______________________________________________________________

Sub CheckFields {
if (!$Username || $Username eq ' ') {&Error;}
if (!$Password || $Password eq ' ') {&Error;}
}
Sub Error {
print "Location: $AccessDenied\n\n";
exit;
}

#_______________________________________________________________

Sub Server {
if ($ENV{'HTTP_REFERER'}) {
foreach $referer (@referers) {
if ($ENV{'HTTP_REFERER'} =~ /$referer/i) {
$check_referer = '1';
last;
}}}
else {$check_referer = '1';}
if ($check_referer != 1) {
print "Location: $ForeignCallr\n\n";
exit;
}}
#_______________________________________________________________
Sub AuthLogin {

so das ist das Script. Jetzt möchte ich, dass die cgi $Username und $Password in das format bringt: $Username:$Password (aaa:bbb) und dann mit den einträgen in der datei ".members" vergleicht. Wenn Username:Password mit den kombinationen aus der datei übereinstimmt kommt dann:

print "Location: $AllowedAccess\n\n"

wenn es nicht übereinstimmt dann:

print "Location: $DeniedAccess\n\n"

Das wäre mal das erste!

Als nächstes möchte ich, dass $Password in unix (?? bin mir nicht sicher wie es genau heißt ??) verwandelt wird und dann erst verglichen!

Als letztes würde ich noch gern $Username auf der internen seite verwenden: da sollte dann stehen: Willkommen $Username !! kann man das in eine normale html einbauen oder muss der letzte teil per "print" befehl generiert werden ??

Danke im voraus !
Mfg