Home : Products : Links 2.0 : Customization :

Products: Links 2.0: Customization: Re: [PerlFreak] How to hack info.cgi = category.cgi ?: Edit Log

Here is the list of edits for this post
Re: [PerlFreak] How to hack info.cgi = category.cgi ?
Hi Drew,

Thanks for reply, i try the mod and get the header from info.cgi and rename it to test.cgi, and i test it /cgi-bin/test.cgi?=ID=5 but only appear is a blank page, can you modify it to work ? sorry to my english.

Quote:
#!/usr/bin/perl

eval {
($0 =~ m,(.*)/[^/]+,) && unshift (@INC, "$1");
($0 =~ m,(.*)\\[^\\]+,) && unshift (@INC, "$1");
use CGI qw/:standard/;
require "admin/links.cfg";
require "$db_lib_path/db_utils.pl";
require "$db_lib_path/links.def";
$build_use_templates ?
require "$db_lib_path/site_html_templates.pl" :
require "$db_lib_path/site_html.pl";
};
if ($@) {
print "Content-type: text/plain\n\n";
print "Error including libraries: $@\n";
print "Make sure they exist, permissions are set properly, and paths are set correctly.";
exit;
}

my $in = param('cat');
my $name_col = 1;
my $cat_col = 6;
my $cat = {};
my $subs = {};
my $links = [];
open (DB, "categories.db");
while (<DB>) {
chomp;
my $data = split /\|/;
if ($data->[$name_col] eq $in) {
my $i = 0;
foreach (sort { $a->[0] <=> $b->[0]} keys %db_def) {
$cat->[$_] = $data->[$i++]
}
}
elsif ($data->[$name_col] =~ m,$in/[^/]+$,) {
$subs{$data->[$name_col]} = 0;
}
else {
next;
}
}
close (DB);
($cat->{$in} eq $in) or die "Category $in not found";
open (DB, "links.db");
while (<DB>) {
chomp;
my $data = split /\|/;
if ($data->[$cat_col] eq $in) {
push @$links, [@$data];
} elsif ($data->[$cat_col] =~ m,$in/[^/]+$,) {
${$subs->{$data->[$cat_col]}}++;
}
else {
next;
}
}
close (DB);
print header();
print start_html();
if (scalar keys %$subs) {
print "Categories:";
print "<ul>";
foreach (sort keys %$subs) {
print qq|<li>$_ ($subs->{$_})|;
}
print "</ul>";
}
if (scalar @$links) {
require "admin/links.def";
print "Links:";
print "<ul>";
foreach (sort { $a->[0] cmp $b->[0] } @$links ) {
my $link = {};
my $i = 0;
foreach (sort { $a->[0] <=> $b->[0]} keys %db_def) {
$link->[$_] = $_->[$i++]
}
print qq|<li><a href="$link->{'URL'}">$link->{'Title'}</a><br>$link->{'Description'}|;
}
}
print end_html();

Thanks again.

Last edited by:

reenee: Oct 2, 2001, 2:31 AM

Edit Log: