---
title: "Login"
type: "forum-thread"
url: "https://www.webforum.nu/amne/perl-ruby/19178-login"
topic: "Perl & Ruby"
topic_url: "https://www.webforum.nu/amne/perl-ruby"
author: "Kent"
published: "2000-09-16T19:28:00.000Z"
updated: "2000-09-25T07:28:00.000Z"
replies: 7
views: 440
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/perl-ruby/19178-login"
---

# Login

## #1 — Kent, 2000-09-16T19:28Z

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.

Permalänk: https://www.webforum.nu/p/19178

## #2 — Hansen, 2000-09-17T12:22Z

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/>

Permalänk: https://www.webforum.nu/p/341154

## #3 — stevenet, 2000-09-17T13:32Z

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(/&#0124;/, $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\]**

Permalänk: https://www.webforum.nu/p/341155

## #4 — stevenet, 2000-09-18T16:16Z

Kent, fungerade det?

Permalänk: https://www.webforum.nu/p/341156

## #5 — Kent, 2000-09-18T17:57Z

Har ej haft tid att prova än,
hur lagras användarnamnet och lösenordet.

Permalänk: https://www.webforum.nu/p/341157

## #6 — Csson, 2000-09-18T18:10Z

Om jag inte ser fel hämtas namnet och lösenordet ur en fil med en användare per rad med utseendet:

namn&#0124;lösenord

Det finns dock ingen funktion för att spara en ny användare i det här scriptet.

/Csson

Permalänk: https://www.webforum.nu/p/341158

## #7 — stevenet, 2000-09-19T17:50Z

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.

Permalänk: https://www.webforum.nu/p/341159

## #8 — jakob, 2000-09-25T07:28Z

Varför inte bara använda .htaccess ?

Permalänk: https://www.webforum.nu/p/341160

---

Tråden på webben: https://www.webforum.nu/amne/perl-ruby/19178-login
