#!/usr/bin/perl
###############################
# Hot Links SQL 2.1 addlink.cgi
# Created by Mike Ramirez
# Nothing below here is configurable
###############################
require './source/headerfooter.pl';
require './source/config.pl';
require './source/get.pl';
require './lang/langset.pl';
use CGI;
use DBI;
my $dbh = DBI->connect("DBI:mysql:$dbname;$dbhost", $dblogin, $dbpass) || print "Could not connect to database ";
my $q = CGI->new;
print $q->header;
my $action = $q->param("action");
my $f_category = $q->param("category");
if ($action eq "add") {&addform}
if ($action eq 'edit') {&passcheck}
if ($action eq 'login') {&lookup}
if ($action eq 'addlink') {&checkforduplicate}
if ($action eq 'metaform') {&metaform}
if ($action eq 'getmeta') {&getmeta}
##################################################
sub metaform {
##################################################
&header;
print <<"HTML";
HTML
&footer;
}
##################################################
sub lookup {
##################################################
my $f_id = $q->param("userid");
my $f_pass = $q->param("userpass");
my $sth = $dbh->prepare("SELECT * FROM links WHERE id = $f_id AND password = '$f_pass'") || print "could not access database";
$sth->execute();
while (my $results = $sth->fetchrow_hashref) {
my $linkid = $results->{id};
my $category = $results->{category};
my $sitename = $results->{sitename};
my $url = $results->{url};
my $email = $results->{email};
my $name = $results->{name};
my $password = $results->{password};
my $description = $results->{description};
my $addedon = $results->{addedon};
my $edpick = $results->{edpick};
my $keywords = $results->{keywords};
my $activelink = $results->{activelink};
my $enddate = $results->{enddate};
my $udate = $results->{udate};
my $recipurl = $results->{recipurl};
my $affiliate = $results->{affiliate};
my $image = $results->{image};
$modifylink = "$linkid|$category|$sitename|$url|$email|$name|$password|$description|$addedon|$edpick|$keywords|$activelink|$enddate|$udate|$recipurl|$affiliate|$image";
}
$sth->finish;
if ($modifylink) {
&editscreen;
} else {&error}
}
##################################################
sub editscreen {
##################################################
@currentline = split(/\|/, $modifylink);
&header;
print <<"HTML";
HTML
&footer;
}
##################################################
sub checkforduplicate {
##################################################
my $f_url = $q->param("url");
my $f_category = $q->param("category");
my $f_sitename = $q->param("sitename");
my $f_email = $q->param("email");
my $f_name = $q->param("name");
my $f_password = $q->param("password");
my $f_description = $q->param("description");
my $f_keywords = $q->param("keywords");
my $f_recipurl = $q->param("recipurl");
my $f_enddate = $q->param("enddate");
my $f_image = $q->param("image");
if ($duprestriction == 1) {
my $sth = $dbh->prepare("SELECT id FROM links WHERE url = '$f_url' AND category = '$f_category'") || print "could not access database";
$sth->execute();
if ($sth->rows) {&duplicate}
} elsif ($duprestriction == 2) {
my $sth = $dbh->prepare("SELECT id FROM links WHERE url = '$f_url'") || print "could not access database";
$sth->execute();
if ($sth->rows) {&duplicate}
}
if ((!$f_url) || (!$f_sitename) || (!$f_email) || (!$f_name) || (!$f_password) || (!$f_description)) {$incomplete = 1;}
if ($incomplete == 1) {&incomplete}
else {
&header;
print <<"HTML";
HTML
&footer;
}
}
##################################################
sub duplicate {
##################################################
&header;
print <<"HTML";
$altext21
$altext22
HTML
&footer;
$sth->finish;
exit;
}
##################################################
sub dropdownlist {
##################################################
my $sth = $dbh->prepare("SELECT * FROM categories") || print "could not access database";
$sth->execute();
while (my $results = $sth->fetchrow_hashref) {
my $id = $results->{id};
my $title = $results->{title};
my $description = $results->{description};
my $type = $results->{type};
my $subfor = $results=>{subfor};
push(@cats, "$id|$title|$description|$type|$subfor");
}
$sth->finish;
opendir (DIR, "$catinfopath");
@catbuild = grep (!/^\.\.?$/, readdir (DIR));
closedir(DIR);
foreach $line (@catbuild) {
chomp($line);
if ($line =~ /main/) {
$category = $line;
$category =~ s/\.main//;
foreach $x (@cats) {
chomp($x);
my @catinfo = split(/\|/, $x);
if ($catinfo[0] == $category) {$categorybuild{$category} = "$catinfo[1]"}
}
open (FILE, "$catinfopath/$category.main");
my @subs = ;
close(FILE);
foreach $sub (@subs) {
chomp($sub);
my @subinfo = split(/\|/, $sub);
$categorybuild{$subinfo[0]} = "$categorybuild{$category}/$subinfo[1]";
&buildsubs("$subinfo[0]", "$categorybuild{$subinfo[0]}");
}
}
}
sub buildsubs {
foreach $y (@catbuild) {
chomp($y);
if ($y eq "$_[0].sub") {
open (FILE, "$catinfopath/$y");
my @moresubs = ;
close(FILE);
foreach $sub (@moresubs) {
chomp($sub);
my @subinfo = split(/\|/, $sub);
$categorybuild{$subinfo[0]} = "$_[1]/$subinfo[1]";
&buildsubs("$subinfo[0]", "$categorybuild{$subinfo[0]}");
}
}
}
}
# Build the Drop down menu
foreach $key (keys %categorybuild) {
push(@getvalues, "$categorybuild{$key}|$key");
}
foreach $value (sort values %categorybuild) {
foreach $line (@getvalues) {
chomp($line);
my @comparevalue = split(/\|/, $line);
if ($comparevalue[0] eq $value) {
if ($currentline[1] == $comparevalue[1]) {
print "