Avatar billede handsome Nybegynder
07. maj 2000 - 13:13 Der er 5 kommentarer og
1 løsning

cgi til password

Jeg har et ønske om at beskytte en del af min site med et password. Ideén er, at man skal intaste et password i en form for at komme videre.
Jeg har lavet formen - et password-field og en submit-button.
Kan du hjælpe mig med scriptet???
Avatar billede nof Nybegynder
07. maj 2000 - 14:32 #1
Hej,

her er et password script:

---------------------------------------

#!/usr/local/bin/perl

$datfile = 'password.dat';
$logfile = 'password.log';

# ------ Program ------

&hent_indtast;
&check_indtast;

&vis_ok;
exit;

# ------- Sub -------

sub check_indtast {
open(LOG, "$datfile");
$url=<LOG>;
chop $url;
$lognr = 0;
while($line=<LOG>){
  chop $line;
  if ($line){
  ($lna, $lpa) = split(/&/, $line, 2);
  $lognr ++;
  $logn{$lognr} = lc($lna);
  $logp{$lognr} = lc($lpa);
  }
}
close(LOG);

if ($FORM{'Navn'} eq "root" && $FORM{'Password'} eq "root") {
  &vis_ok;
  exit;
}

$er_der=0;
for ($nlognr=1; $nlognr<=$lognr; $nlognr++) {
  if (lc($logn{$nlognr}) eq lc($FORM{'Navn'})) {
  $er_der=1;
  if (lc($logp{$nlognr}) eq lc($FORM{'Password'})) {
    $er_der=2;
  }
  }
}
open(LOG, ">>$logfile");
  $time = localtime;
  print LOG "$FORM{'Navn'}\&$FORM{'Password'}\&$time\n";
close(LOG);

if ($er_der == 0) {
  &html_head;
  &fejl_navn;
  &html_foot;
  exit;
}
if ($er_der == 1) {
  &html_head;
  &fejl_pass;
  &html_foot;
  exit;
}
}

sub hent_indtast {
  read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
  $pair =~ s/\+/ /g;
  ($name, $value) = split(/=/, $pair, 2);
  $name =~ s/%(..)/pack("c",hex($1))/ge;
  $value =~ s/%(..)/pack("c",hex($1))/ge;
  $FORM{$name} = $value;
}
}

sub html_head {
print "Content-type: text/html\n\n";
}

sub html_foot {
print <<END_OF_TEXT;
</body>
</html>
END_OF_TEXT
}

sub vis_ok {
print "Location: $url\n\n";
}

sub fejl_navn {
print <<END_OF_TEXT;
<html>
<head>
<title>Password</title>
</head>
<body>
<center>
Forkert brugernavn!<br>
Tryk på back eller tilbage knappen og ret fejlen.<br><br>
<font size=-1>Password-system by <a href="http://www.nof.dk" target=_new>NOF.DK</font>
</center>
END_OF_TEXT
}

sub fejl_pass {
print <<END_OF_TEXT;
<html>
<head>
<title>Password</title>
</head>
<body>
<center>
Forkert password!<br>
Tryk på back eller tilbage-knappen og ret fejlen.<br><br>
<font size=-1>Password-system by <a href="http://www.nof.dk" target=_new>NOF.DK</font>
</center>
END_OF_TEXT
}

---------------------------------------

Denne kode gemmes som password.cgi .

Derefter laver du en fil som du gemmer som password.dat - den skal have følgende indhold:

http://www.somewhere.com
bruger1&1234
bruger2&4321

der hvor der nu står http://www.somewhere.com skal du skrive hele adressen til den fil som skal beskyttes.

der hvor der står bruger1&1234 , skal du skrive det ønskede brugernavn. lade & tegnet være og derefter skrive det ønskede password.
I næste linje kan du gøre det samme hvis du ønsker at flere der skal være flere brugere.

Til sidst laver du en fil som UDEN indhold, den skal gemmes som password.log .

Til sidst en html kode som du indsætter på din side.

<FORM ACTION="password.cgi" METHOD=POST>
  <table border=0 CELLPADDING=0 CELLSPACING=0>
  <tr><td>Brugenavn: </td><td><INPUT name="Navn" size=20></td></tr>
  <tr><td>Password: </td><td><INPUT TYPE="PASSWORD" name="Password" size=20></td></tr>
  <tr><td colspan=2><center><INPUT type="submit" value=" Login "></center></td></tr>
  <tr><td colspan=2><center><font size=-1>Password-system by <a href="http://www.nof.dk" target=_new>NOF.DK</font></center></td></tr>
  </table>
  </form>

Det var det - håber at du kan få det til at virke, ellers må du bare spørge igen.

/nof

Avatar billede handsome Nybegynder
07. maj 2000 - 15:33 #2
Hej nof!

Det ser vildt ud. Jeg sidder ikke lige i nærheden af mit HTML layout-program, som jeg anvender - GoLive - men lige så snart jeg kommer i nærheden af det, så kigger jeg på det!

- Handsome
Avatar billede nof Nybegynder
07. maj 2000 - 15:43 #3
...ok :o)

/nof
Avatar billede nof Nybegynder
07. maj 2000 - 15:45 #4
...du skal forresten lige huske at filerne password.dat og password.log skal laves i WordPad.

/nof
Avatar billede handsome Nybegynder
07. maj 2000 - 15:58 #5
...Det husker jeg!

- Handsome
Avatar billede roadkill Nybegynder
25. juli 2000 - 14:50 #6
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester