Hur bygger man ett login system i perl,
man ska kunna logga in på ett unikt id samt lösen.
Någon som råkar ha ett sådant script.
Login
Perl & Rubyur Perl, Python, Ruby och övrig CGI
7 svar · 432 visningar · startad av Kent
Kanske du hittar något som passar här:
http://cgi.resourceindex.com/Programs_and_Scripts/Perl/Password_Protection/ http://www.perlarchive.com/guide/Password_Protection/
------------------
Hansen
c.h@ngmedia.com
Så här kanske?
#!/usr/bin/perl
my($buffer, @par, $i);
# Lds informationen
$buffer = "";
$buffer = $ENV{'QUERY_STRING'}
if $ENV{'REQUEST_METHOD'} eq 'GET';
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'})
if $ENV{'REQUEST_METHOD'} eq 'POST';
# Omvandla + till mellanslag
$buffer =~ tr/+/ /;
# Bygg en lista av namn och vdrden
@par = split /[&=]/, $buffer;
# Tolka kodade tal
foreach $par (@par)
{$par =~ s/%([0-9A-F]{2})/chr(hex($1))/egi;}
# Ldgg in i tabellen %form
for ($i=0; $i<$#par; $i+=2)
{
if ($FORM{$par[$i]})
{$FORM{$par[$i]}.= "\n".$par[$i+1];}
else
{$FORM{$par[$i]} = $par[$i+1];}
}
$LOCK_EX = 2;
$LOCK_UN = 8;
$fil = "fil.dat";
$action = $FORM{'action'};
print "Content-type: text/html\n\n";
&in if ($action eq 'in');
print "<h3><font face=\"Verdana\"Logga in</font></h3><p>\n";
print <<HTML;
V.g. ange Era uppgifter för att logga in.
<FORM METHOD="POST" ACTION="index.cgi">
<INPUT TYPE="hidden" NAME="action" VALUE="in">
ID-nummer:<BR>
<INPUT TYPE="text" NAME="id"><BR>
Lösenord:<BR>
<INPUT TYPE="text" NAME="losen"><BR>
<INPUT TYPE="submit" VALUE="Logga in">
</FORM>
HTML
exit;
sub in {
$in_id = $FORM{'id'};
$in_losen = $FORM{'losen'};
$hittat = 0;
open(meddb, "$fil");
&lock(meddb);
while(<meddb> ) {
$filen = $_;
($id,$losen) =
split(/|/, $filen);
if (($id eq $in_id) && ($losen eq $in_losen)){
$hittat++;
}
}
if($hittat == 0) {
print "<h3><font face=\"Verdana\">FEL! </font></h3><p>\n";
print "Lösenordet och/eller ID-nummret Ni angav var fel. V.g. försök igen genom att trycka på TILLBAKA-knappen din webbläsare och rätta till felet.\n";
exit;
}
print "Inloggad";
exit;
}
sub lock {
local($file)=@_;
flock($file, $LOCK_EX);
}
sub unlock {
local($file)=@_;
flock($file, $LOCK_UN);
}
[r]Glömde ett subprogram.[/r]
------------------
SteveNet - stevenet@webmarkit.net
Stjäl inte mer än vad du kan bära, staten hatar konkurrens.
[Redigerat av stevenet den 18 sep 2000]
Kent, fungerade det?
------------------
SteveNet - stevenet@webmarkit.net
Stjäl inte mer än vad du kan bära, staten hatar konkurrens.
Har ej haft tid att prova än,
hur lagras användarnamnet och lösenordet.
Om jag inte ser fel hämtas namnet och lösenordet ur en fil med en användare per rad med utseendet:
namn|lösenord
Det finns dock ingen funktion för att spara en ny användare i det här scriptet.
/Csson
Nej, det finns ingen funktion för att spara nya användare i scriptet. Jag kan göra en sådan, om du säger hur du vill ha det upplagt.
------------------
SteveNet - stevenet@webmarkit.net
Stjäl inte mer än vad du kan bära, staten hatar konkurrens.
Varför inte bara använda .htaccess ?