#!/usr/bin/perl ############################## ## AutoGallery SQL v2.1.x ## ##################################################################### ## partner.cgi - handle submission of partner posts ## ##################################################################### %map = ( 'login' => \&displayLogin, 'remind' => \&displayRemind ); $funct = '|postGallery|displayEdit|editPartner|sendPassword|accountData|'; print "Content-type: text/html\n\n"; $HEADER = 1; eval { require 'ags.pl'; main(); SQLDisconnect(); }; err("$@", 'partner.cgi') if( $@ ); exit; ######################################################################## ## Removing the link back to JMB Software is a copyright violation. ## ## Altering or removing any of the code that is responsible, in ## ## any way, for generating that link is strictly forbidden. ## ## Anyone violating the above policy will have their license ## ## terminated on the spot. Do not remove that link - ever. ## ######################################################################## sub main { if( $REQMTH eq 'GET' ) { if( $map{$QUERY} ) { &{$map{$QUERY}}; } else { displayMain(); } } elsif( $REQMTH eq 'POST' ) { parsepost(1, 'upfile'); derr(1016) if( index($funct, "|$FRM{run}|") == -1 ); &{$FRM{run}}; } } sub displayMain { for( split(/,/, $CATEGORIES) ) { $TPL{CAT_OPTIONS} .= qq|\n|; } fparse('_partner_main.htmlt'); } sub displayEdit { derr(1000, $L_PARTNER_ID) if( !$FRM{user} ); my $md = SQLRow("SELECT * FROM a_Partners WHERE Partner_ID='$FRM{user}'"); derr(1018) if( !$md ); derr(1019) if( $md->{'Password'} ne $FRM{pass} ); $TPL{PARTNER_ID} = $FRM{user}; $TPL{EMAIL} = $md->{'Email'}; $TPL{CONTACT} = $md->{'Name'}; $TPL{SITE_URL} = $md->{'Site_URL'}; $TPL{PASSWORD} = $md->{'Password'}; fparse('_partner_edit.htmlt'); } sub displayRemind { tprint('_partner_remind.htmlt'); } sub displayLogin { tprint('_partner_login.htmlt'); } ############################################################################### sub postGallery { my %results; my $hexip = IPtoHex($ENV{'REMOTE_ADDR'}); my $partner = SQLRow("SELECT * FROM a_Partners WHERE Partner_ID='$FRM{user}'"); my $time = time + 3600 * $TIME_ZONE; my $daytime = fdate('%Y-%m-%d', $time) . ' ' . ftime('%H:%i:%s', $time); $tmpimg = $hexip . '-' . time; derr(1018) if( !$partner ); derr(1019) if( $partner->{'Password'} ne $FRM{pass} ); $FRM{perm} = 1 if( !exists $FRM{perm} ); $FRM{desc} = ucfirst(lc($FRM{desc})) if( $USE_LOWER_CASE ); $FRM{rurl} = $FRM{gurl}; derr(1005, $L_GALLERY_URL ) if( $FRM{gurl} !~ /^http:\/\/[\w\d\-\.]+\.[\w\d\-\.]+/ ); derr(1000, $L_DESCRIPTION ) if( $USE_REQ_DESC && !$FRM{desc} ); derr(1008 ) if( length($FRM{desc}) > $DESC_LENGTH ); derr(1009 ) if( index($CATEGORIES, $FRM{cat}) == -1 ); checkBans(); if( $USE_PASSPHRASE ) { my $pphrase = SQLRow("SELECT * FROM a_Passphrase WHERE Hex_IP='$hexip'"); if( !$pphrase || $pphrase->{'Phrase'} ne uc($FRM{'phrase'}) ) { derr(1046); } } if( !analyzeGallery($FRM{gurl}, \%results) ) { httpError($FRM{gurl}, $Errstr); } if( $results{'IMAGE_ERROR'} ) { httpError($results{'IMAGE_ERROR_URL'}, $results{'IMAGE_ERROR'}); } if( $USE_CHECK_RECIP ) { if( $results{'RECIP_ERROR'} ) { httpError($FRM{rurl}, $results{'RECIP_ERROR'}); } else { $checked = 1; $found = $results{'RECIP_LINK'}; $rating++ if( $USE_RECIP_BOOST && $found ); derr(1010) if( $USE_REQ_RECIP && !$found ); } } if( $USE_BANNED_HTML && $results{'BANNED_HTML'} ) { derr(1013); } if( $USE_COUNT_PICS ) { $FRM{pics} = $results{'IMAGES'}; } derr(1007) if( $FRM{pics} < $MINIMUM_PICS ); derr(1040) if( $FRM{pics} > $MAXIMUM_PICS ); ## Check the number of links on the gallery if( $USE_COUNT_LINKS ) { if( $results{'BANNER_LINKS'} + $results{'TEXT_LINKS'} > $MAXIMUM_LINKS ) { derr(1043); } } if( $USE_TAKE_SAMPLE ) { ## Check download speed of gallery content if( $results{'THROUGHPUT'} < $MINIMUM_SPEED ) { derr(1041); } ## Check byte size of gallery content for( keys %results ) { if( index('SIZE_', $_) == 0 ) { if( $results{$_} < $IMAGE_SIZE ) { derr(1042); } } } } ## Check to see if an identical page exists in the database if( $USE_DUP_CONTENT ) { SQLCount("SELECT COUNT(*) FROM a_Posts WHERE Page_ID='$results{'PAGE_ID'}'"); } ## Software automatically selecting thumbnail if( $USE_SELECT_THUMB ) { if( !$results{'IMAGES'} ) { derr(1053); } $SendRef = 1; ## Download the full size image if( !GET($results{'PREVIEW_IMAGE'}) ) { httpError($results{'PREVIEW_IMAGE'}, $Errstr); } else { fwrite("$THUMB_DIR/$tmpimg.jpg", $Data); } require 'magick.pl'; processImage("$THUMB_DIR/$tmpimg.jpg", $FRM{cat}); } else { ## No thumbnail provided if( $USE_PREVIEW && (!$FRM{turl} && !$FRM{upfile}) ) { derr(1051); } if( $FRM{turl} || $FRM{upfile} ) { if( $FRM{turl} ) { $SendRef = 1; if( !GET($FRM{turl}) ) { httpError($FRM{turl}, $Errstr); } else { fwrite("$THUMB_DIR/$tmpimg.jpg", $Data); } } else { fwrite("$THUMB_DIR/$tmpimg.jpg", $FRM{upfile}); $BodyBytes = (-s "$THUMB_DIR/$tmpimg.jpg"); } ## Automatic resize and crop if( $USE_RESIZE ) { require 'magick.pl'; processImage("$THUMB_DIR/$tmpimg.jpg", $FRM{cat}); } else { my @dims = imgsize("$THUMB_DIR/$tmpimg.jpg"); ## bad image; not a JPEG if( $dims[2] ne 'JPG' ) { derr(1047); } else { ## thumbnail byte size exceeds the allowed amount if( $BodyBytes > $MAX_BYTE ) { derr(1050); } ## thumbnail is bigger than allowed dimensions if( $dims[0] > $MAX_WIDTH || $dims[1] > $MAX_HEIGHT ) { derr(1048); } ## thumbnail must match admin defined dimensions if( $USE_FORCE_DIMS ) { if( $dims[0] != $MAX_WIDTH || $dims[1] != $MAX_HEIGHT ) { derr(1049); } } } if( $USE_SHOW_CAT ) { require 'magick.pl'; annotateImage("$THUMB_DIR/$tmpimg.jpg", $FRM{cat}); } } } } ## end thumbnail preview code my $partial = getPartialURL($FRM{gurl}); checkNumber(); if( $USE_PASSPHRASE ) { SQLQuery("DELETE FROM a_Passphrase WHERE Hex_IP='$hexip'"); } $TPL{GALLERY_URL} = $FRM{gurl}; $TPL{DESCRIPTION} = $FRM{desc}; $TPL{NUM_PICS} = $FRM{pics}; $TPL{THUMB_URL} = $FRM{upfile} ? 'Uploaded' : $FRM{turl}; $TPL{PERMANENT} = $FRM{perm} ? $L_YES : $L_NO; $TPL{CATEGORY} = $FRM{cat}; for( keys %FRM ) { $FRM{$_} =~ s/'/\\'/g; } if( $partner->{'Auto_Approve'} ) { $moderator = 'Automatic'; } else { $moderator = '-'; } if( $USE_AUTO_APPROVE ) { $moderator = 'Automatic'; $partner->{'Auto_Approve'} = 1; } $DBH->do("INSERT INTO a_Posts VALUES (" . "NULL, " . "'$partner->{'Email'}', " . "'$FRM{gurl}', " . "'$FRM{desc}', " . "'$FRM{rurl}', " . "'$partial', " . "'$FRM{pics}', " . "'$FRM{cat}', " . "'$daytime', " . "'$daytime', " . "'$partner->{'Partner_ID'}', " . "'$moderator', " . "'', " . "'1', " . "'0', " . "'$partner->{'Auto_Approve'}', " . "'0', " . "'$FRM{perm}', " . "'0', " . "'0', " . "'$RMTADR', " . "'$partner->{'Icons'}', " . "'$partner->{'Rating'}', " . "'$results{'PAGE_ID'}', " . "'$results{'PAGE_BYTES'}', " . "'$results{'TEXT_LINKS'}', " . "'$results{'BANNER_LINKS'}', " . "'$results{'THROUGHPUT'}' )") || SQLErr($DBH->errstr()); $TPL{POST_ID} = $DBH->{'mysql_insertid'}; rename("$THUMB_DIR/$tmpimg.jpg", "$THUMB_DIR/$TPL{POST_ID}.jpg"); fparse('_partner_posted.htmlt'); if( $partner->{'Auto_Approve'} ) { my $proc = fork(); if( !$proc ) { close STDIN; close STDOUT; close STDERR; SQLConnect(); doArchive(); buildMain(); buildArchives(); SQLDisconnect(); exit; } } } sub sendPassword { derr(1000, $L_EMAIL) if( !$FRM{email} ); my $partner = SQLRow("SELECT * FROM a_Partners WHERE Email='$FRM{email}'"); derr(1017) if( !$partner ); $TPL{PASSWORD} = $partner->{'Password'}; $TPL{PARTNER_ID} = $partner->{'Partner_ID'}; $TPL{EMAIL} = $FRM{email}; $TPL{ADMIN_EMAIL} = $ADMIN_EMAIL; $TPL{POST_URL} = "$CGI_URL/partner.cgi"; mail($SENDMAIL, freadalls("$TDIR/_email_remind.etmpl"), \%TPL); fparse('_partner_reminded.htmlt'); } sub accountData { $data = freadalls("$DDIR/vars.dat"); print <{'Password'} ne $FRM{oldpass} ); derr(1009, $L_SITE_URL) if( $FRM{surl} !~ /^http:\/\/[\w\d\-\.]+\.[\w\d\-\.]+/ ); derr(1005, $L_EMAIL) if( $FRM{mail} !~ /^[\w\d][\w\d\,\.\-]*\@([\w\d\-]+\.)+([a-zA-Z]+)$/ ); $TPL{PARTNER_ID} = $FRM{user}; $TPL{SITE_URL} = $FRM{surl}; $TPL{CONTACT} = $FRM{name}; $TPL{EMAIL} = $FRM{mail}; $TPL{PASSWORD} = $FRM{pass}; for( keys %FRM ) { derr(1000) if( !$FRM{$_} ); $FRM{$_} =~ s/'/\\'/g; } $DBH->do("UPDATE a_Partners SET Email='$FRM{mail}', Name='$FRM{name}', Site_URL='$FRM{surl}', Password='$FRM{pass}' WHERE Partner_ID='$FRM{user}'") || SQLErr($DBH->errstr()); fparse('_partner_edited.htmlt'); } #hank sub checkNumber { derr(1014) if( $USE_CHECK_DUPS && SQLCount("SELECT COUNT(*) FROM a_Posts WHERE Gallery_URL='$FRM{gurl}'") ); derr(1037) if( SQLCount("SELECT COUNT(*) FROM a_Posts WHERE Partner_ID='$FRM{user}' && DATE_FORMAT(Submit_Date, '%Y-%m-%d')=CURDATE()") >= $P_POSTS_PER_DAY ); } sub checkBans { my( @files ) = qw(IP.ban email.ban url.ban word.ban); my( $file, $ban ); foreach $file ( @files ) { my $bans = freadall("$DDIR/dbs/$file"); foreach $ban ( @{ $bans } ) { next if( $ban =~ /^\s*$/ ); chomp($ban = lc($ban)); derr(1012 ) if( $file eq "IP.ban" && index($RMTADR, $ban) == 0 ); derr(1011, $L_DOMAIN ) if( $file eq "url.ban" && index(lc($FRM{gurl}), $ban) != -1 ); derr(1011, "$L_WORD '$ban'" ) if( $file eq "word.ban" && index(lc($FRM{desc}), $ban) != -1 ); } } }
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.