#!/usr/bin/perl use strict; use lib '/path/to/admin'; use Links qw/$IN $DB $CFG $USER/; Links::init ('/path/to/admin'); Links::init('/path/to/admin'); Links::init_user(); use Links::SiteHTML; local $SIG{__DIE__} = \&Links::fatal; main(); sub main { # -------------------------------------------------------------- # Wrap in a subroutine to prevent possible mod_perl probs. # my $page = $IN->param('g') || ''; $page =~ s,^/*,,g; $page =~ s,/*$,,g; # Check the referer. check_refer(); if ($page =~ 'Synopsis') { my $id = $IN->param('ID'); my $url = $IN->param('URL'); if (! $id) { $id = '060'; print $IN->header(); print Links::SiteHTML::display ('error', { error => Links::language('PAGE_INVALIDDETAIL', $id) }); return; } my $db = $Links::DB->table('Links'); my $cartoon = $db->get ($id, 'HASH'); my $Title = $cartoon->{Title}; my $URL = $cartoon->{URL}; if ($url != $URL) { $id = '460'; print $IN->header(); print Links::SiteHTML::display ('error', { error => Links::language('PAGE_INVALIDDETAIL', $id) }); return; } print $IN->header(); print Links::SiteHTML::display ('Synopsis', {Title => $Title, URL => $URL}); return; } if ($page =~ 'Report') { my ($id, $url); $id = $IN->param('ID'); $url = $IN->param('URL'); if (! $id) { $id = '060'; print $IN->header(); print Links::SiteHTML::display ('error', { error => Links::language('PAGE_INVALIDDETAIL', $id) }); return; } my $db = $Links::DB->table('Links'); my $cartoon = $db->get ($id, 'HASH'); my $Title = $cartoon->{Title}; my $URL = $cartoon->{URL}; if ($url != $URL) { $id = '460'; print $IN->header(); print Links::SiteHTML::display ('error', { error => Links::language('PAGE_INVALIDDETAIL', $id) }); return; } print $IN->header(); print Links::SiteHTML::display ('Problem', {Title => $Title, URL => $URL}); return; } if ($page =~ 'Sent') { my ($id, $title, $url, $reason, $to, $from, $msg, $subject, $desc, $name, $email); $id = $IN->param('ID'); $url = $IN->param('URL'); $reason = $IN->param('reason'); $desc = $IN->param('desc'); $name = $IN->param('name'); $email = $IN->param('email'); my $links_db = $DB->table ('Links'); my $sth = $links_db->get ($id, 'HASH'); $title = $sth->{'Title'}; if ($reason =~ 'Please Select The Problem') { print $IN->header(); print Links::SiteHTML::display ('error', { error => Links::language('PAGE_INVALIDREASON', $id) }); return; } if (! $desc) { print $IN->header(); print Links::SiteHTML::display ('error', { error => Links::language('PAGE_NOREASON', $id) }); return; } # Remove HTML tags from the Review $reason =~ s/>/>/g; $reason =~ s/{db_admin_email}; $from = $CFG->{db_admin_email}; $subject = "Screwed Up Cartoon: $title\n"; $msg = qq| The following cartoon is probably screwed up! Title: $title ID: $id URL: $url Reason: $reason Elaborate: $desc Name: $name email: $email To Modify, please go to: $CFG->{admin_root_url}/admin.cgi?db=Links&do=modify_search_results&ID=$id&ww=1 Sincerely, BCDB Manager. |; # Send to the admin. require GT::Mail; $GT::Mail::error ||= ''; # Silence -w GT::Mail->send ( smtp => $CFG->{db_smtp_server}, sendmail => $CFG->{db_mail_path}, from => $from, subject => $subject, to => $to, msg => $msg, debug => $Links::DEBUG ) or Links::fatal ("Unable to send mail: $GT::Mail::error"); print $IN->header(); print Links::SiteHTML::display ('Problem_sent', { $id, $title, $url, $reason, $desc, $name, $email} ); } else { print $IN->header(); print Links::SiteHTML::display ('Problem_error', {} ); return; } } else { print $IN->header(); print Links::Build::build('home', {} ); return; } } sub check_refer { # ------------------------------------------------------------------ # Check the Referer. # my (@referers, $referer, $check_referer); @referers = ( "Your.IP.Address" , "Your.domain.name" ); if ($ENV{"HTTP_REFERER"}) { foreach $referer (@referers) { if ($ENV{"HTTP_REFERER"} =~ m|https?://([^/]*)$referer|i) { $check_referer = "1"; last; } } } else { $check_referer = "1"; } if ($check_referer != 1) { print $IN->header(); print Links::SiteHTML::display ('error', { error => Links::language('PAGE_REFER') }); return; } } 1;