Avatar billede shemeri Praktikant
04. februar 2001 - 22:50 Der er 12 kommentarer og
1 løsning

CGI

Jeg har lavet en CGI script til indexing af websiden, men den virker ikke.
Er nogen derude der kan hjælpe ved at kigge på den og fortæl hvor fejlen er?! :)
Jeg kan sende den med email :)

Avatar billede magnus48 Nybegynder
04. februar 2001 - 22:51 #1
jeg kan da sagten
Avatar billede erikjacobsen Ekspert
04. februar 2001 - 22:51 #2
Vis den her - ellers vil jeg ikke hjælpe.
Avatar billede magnus48 Nybegynder
04. februar 2001 - 22:52 #3
jaja sagtens ikke sagten
Avatar billede shemeri Praktikant
04. februar 2001 - 22:56 #4
#!/usr/bin/perl

#Name of the configuration File
$indexdat = \"config.m\";

# Deny Page to be displayed on deny
$denied = \"http://www.dk.dk/deny.html\";

# File to write the denied host name and ip
$write_page = \"denied.txt\";

# IP and host name to be rejected.
$adress_deny = \"121.212.23.23\";
$host_deny=\"ir.irla.dk\";

# Set $antiopt = \"yes\" to protect your files
# From being linked to other people\'s sites.
$antiopt = \"no\";

# Name of the file that contains the names of the
# pages to allw to link to the scipt
$anticfg = \"allow.m\";
####################################

$address = $ENV{\'remote_addr\'};
$host= $ENV{\'remote_host\'};
If($host=~ /$host_deny/)
{
$write_entry;
}

open(LFILE,\"$anticfg\");
@LData = <LFILE>;
close(LFILE);
foreach $LLine (@LData) {
          ($hname, $mime, $locat) = split(/\\|/,$LLine);
            if ($ENV{\'HTTP_REFERER\'} eq \"$hname\") {
            &indexfile;
            exit;
            }
}

if ($antiopt eq \"yes\") {
    &Leech;
    exit;
}

else {
    &indexfile;
}

sub indexfile {

open(FILE,\"$indexdat\");
@Data = <FILE>;
close(FILE);
foreach $Line (@Data) {
        ($name, $mime, $locat) = split(/\\|/,$Line);     
if ($ENV{\'QUERY_STRING\'} eq \"$name\") {
        print \"Location: $locat\\n\\n\";
        exit;
        }
}

if ($ENV{\'QUERY_STRING\'} eq \"\") {
    print \"Content-type: text/html\\n\\n\";
    print \"<title>Error</title>\\n\";
    print \"<center><font face=Arial,Helvetica><h1>Error</h1></center></font><p>\\n\";
        print \"<center><font face=Arial,Helvetica>You must enter the name of the file</font></center>\\n\";
        exit;
        }
else {
    print \"Content-type: text/html\\n\\n\";
    print \"<title>Error</title>\\n\";
    print \"<center><font face=Arial,Helvetica><h1>Error</h1></center></font><p>\\n\";
    print \"<center><font face=Arial,Helvetica>The name \'$ENV{\'QUERY_STRING\'}\' was not found in the data file.</center></font><p>\\n\";
        exit;
        }
}

Sub Write_Entry {
      Open(File, \">>$write_page\");
      Print File \"$address\\n\";
      Print File \"$host\\n\";
      close(File);
      Print \"Location: $denied\\n\\n\";
}

sub Leech {

        print \"Content-type: text/html\\n\\n\";
        print \"<title>Sorry</title>\\n\";
        print \"<center><font face=Arial,Helvetica><h1>Sorry</h1></center></font><p>\\n\";
        print \"<center><font face=Arial,Helvetica>You may not link to my media files</font></center>\\n\";
    }

Jeg har da alle filer på serveren, denied.txt, config.m, osv..
Avatar billede erikjacobsen Ekspert
04. februar 2001 - 22:58 #5
Prøv at ændre
  If($host=~ /$host_deny/)
til
  if($host=~ /$host_deny/)
Avatar billede shemeri Praktikant
04. februar 2001 - 22:59 #6
($hname, $mime, $locat) = ($hname, $locat)
og ($name, $locat)
Avatar billede shemeri Praktikant
04. februar 2001 - 23:02 #7
det hjælpe ikke med If
Avatar billede erikjacobsen Ekspert
04. februar 2001 - 23:10 #8
Der er mange andre steder du gør det samme. Der er forskel
på store og små bogstaver i Perl.
Open->open
Sub->sub
Print->print
Hvis du skriver af, skal du gøre det ordentligt.
Avatar billede hoejrup Nybegynder
04. februar 2001 - 23:22 #9
#!/usr/bin/perl


#Name of the configuration File
$indexdat = \"config.m\";

# Deny Page to be displayed on deny
$denied = \"http://www.dk.dk/deny.html\";;

# File to write the denied host name and ip
$write_page = \"denied.txt\";

# IP and host name to be rejected.
$adress_deny = \"121.212.23.23\";
$host_deny=\"ir.irla.dk\";

# Set $antiopt = \"yes\" to protect your files
# From being linked to other people\'s sites.
$antiopt = \"no\";

# Name of the file that contains the names of the
# pages to allw to link to the scipt
$anticfg = \"allow.m\";
####################################

$address = $ENV{\'remote_addr\'};
$host= $ENV{\'remote_host\'};
if($host=~ /$host_deny/) {
$write_entry;
}

open(LFILE,\"$anticfg\");
@LData = <LFILE>;
close(LFILE);
foreach $LLine (@LData) {
          ($hname, $mime, $locat) = split(/\\|/,$LLine);
            if ($ENV{\'HTTP_REFERER\'} eq \"$hname\") {
            &indexfile;
            exit;
            }
}

if ($antiopt eq \"yes\") {
    &Leech;
    exit;
}

else {
    &indexfile;
}

sub indexfile {

open(FILE,\"$indexdat\");
@Data = <FILE>;
close(FILE);
foreach $Line (@Data) {
        ($name, $mime, $locat) = split(/\\|/,$Line);     
if ($ENV{\'QUERY_STRING\'} eq \"$name\") {
        print \"Location: $locat\\n\\n\";
        exit;
        }
}

if ($ENV{\'QUERY_STRING\'} eq \"\") {
    print \"Content-type: text/html\\n\\n\";
    print \"<title>Error</title>\\n\";
    print \"<center><font face=Arial,Helvetica><h1>Error</h1></center></font><p>\\n\";
        print \"<center><font face=Arial,Helvetica>You must enter the name of the file</font></center>\\n\";
        exit;
        }
else {
    print \"Content-type: text/html\\n\\n\";
    print \"<title>Error</title>\\n\";
    print \"<center><font face=Arial,Helvetica><h1>Error</h1></center></font><p>\\n\";
    print \"<center><font face=Arial,Helvetica>The name \'$ENV{\'QUERY_STRING\'}\' was not found in the data file.</center></font><p>\\n\";
        exit;
        }
}

sub Write_Entry {
      open(FILE, \">>$write_page\");
      print FILE \"$address\\n\";
      print FILE \"$host\\n\";
      close(FILE);
      print \"Location: $locat\\n\\n\";
}

sub Leech {
        print \"Content-type: text/html\\n\\n\";
        print \"<title>Sorry</title>\\n\";
        print \"<center><font face=Arial,Helvetica><h1>Sorry</h1></center></font><p>\\n\";
        print \"<center><font face=Arial,Helvetica>You may not link to my media files</font></center>\\n\";
    }


Fejl er rettet i scriptet

/per
Avatar billede shemeri Praktikant
04. februar 2001 - 23:25 #10
1000 tak erikjacobsen, det virker
men er det muligt og gemme url\'en end at bruge print \"location\"....

Avatar billede erikjacobsen Ekspert
04. februar 2001 - 23:33 #11
Gemme ??? Skal man ikke kunne se adressen, eller vil du gemme
på serveren antallet af gange den er blevet valgt ??
Avatar billede shemeri Praktikant
08. februar 2001 - 11:02 #12
jeg tænker på at ikke vise url\'en, så ingen kan få direkter adgang til den.
Avatar billede erikjacobsen Ekspert
08. februar 2001 - 11:56 #13
Man kan jo bare højreklikke og se egenskaber for siden. Så kan man
se URL-en. Du kan ikke skjule den for den erfarne bruger.

Du kan \"skjule\" den, så den ikke kan ses i adresselinien i browseren,
ved at putte siden ind i en ramme/frame.
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
Kurser inden for grundlæggende programmering

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