add('MSG','

' . $getpoll3['question'] . '

Thank you for voting on the Poll of the Week!
Click here to visit the page for this poll.'); $template->display(); } else if (!isset($_GET['id'])) { $template = new FITemplate('pollIndex'); if (isset($_GET['start'])) { $start = $_GET['start'] * 10; } else { $start = 0; } $getpolls = "SELECT * FROM polloftheweek ORDER BY id DESC LIMIT " . $start . ",10"; $getpolls2 = mysql_query($getpolls); $i=0; while ($getpolls3[$i] = mysql_fetch_array($getpolls2)) { $question = strip_tags($getpolls3[$i]['question']); if (strlen($question) > 50) { $question = substr($question, 0, 50); while (substr($question, strlen($question)-1) != ' ') { $question = substr($question, 0, strlen($question)-1); } $question = substr($question, 0, strlen($question)-1); $question .= '....'; } $template->adds_block('POLL', array( 'ID' => $getpolls3[$i]['id'], 'QUESTION' => $question, 'WEEK' => date('F jS Y', strtotime($getpolls3[$i]['week'])), 'EVEN' => (($i % 2 == 1) ? ' CLASS="even"' : ''))); $i++; } if ($i==0) { generateError('404'); exit; } $start /= 10; if ($start > 0) { $template->adds_block('PREVIOUS', array('ID' => ($start-1))); } $cntpolls = "SELECT COUNT(*) FROM polloftheweek"; $cntpolls2 = mysql_query($cntpolls); $cntpolls3 = mysql_fetch_array($cntpolls2); if ($start < floor($cntpolls3['COUNT(*)'] / 10)) { $template->adds_block('NEXT', array('ID' => ($start+1))); } include('pages/polloftheweek.php'); $template->display(); } else { $template = new FITemplate('poll'); $getpoll = "SELECT * FROM polloftheweek WHERE id = " . $_GET['id']; $getpoll2 = mysql_query($getpoll); $getpoll3 = mysql_fetch_array($getpoll2); $template->add('QUESTION', $getpoll3['question']); $getrss = "SELECT * FROM pollrss WHERE id = " . $_GET['id']; $getrss2 = mysql_query($getrss); $getrss3 = mysql_fetch_array($getrss2); if ($getrss3['id'] == $_GET['id']) { $template->adds_block('COMPLETE', array( 'RSS' => parseText($getrss3['rss']), 'AUTHOR' => $getrss3['author'], 'DATE' => date("F dS Y \a\\t g:i:s a",strtotime($getrss3['date'])), 'OPTION1' => $getpoll3['option1'], 'OPTION2' => $getpoll3['option2'], 'OPTION3' => $getpoll3['option3'], 'OPTION4' => $getpoll3['option4'], 'CLICKS1' => $getpoll3['clicks1'], 'CLICKS2' => $getpoll3['clicks2'], 'CLICKS3' => $getpoll3['clicks3'], 'CLICKS4' => $getpoll3['clicks4'])); } else { $template->adds_block('INCOMPLETE', array('exi'=>1)); } $forceDisplay = $_GET['id']; include('pages/polloftheweek.php'); unset($forceDisplay); $template->display(); $page_id = 'polloftheweek-' . $getpoll3['id']; include('includes/comments.php'); displayRelated($getpoll3['question']); } ?> href='#n45'>45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

<?php
/*
       444444444  
      4::::::::4  
     4:::::::::4  
    4::::44::::4  
   4::::4 4::::4   Four Island
  4::::4  4::::4  
 4::::4   4::::4   Written and maintained by Starla Insigna
4::::444444::::444
4::::::::::::::::4  xmlrpc.php
4444444444:::::444
          4::::4   Please do not use, reproduce or steal the
          4::::4   contents of this file without explicit
          4::::4   permission from Hatkirby.
        44::::::44
        4::::::::4
        4444444444
*/

require('headerproc.php');

include('../security/config.php');
include('includes/db.php');
include('includes/xmlrpc/xmlrpc.inc');
include('includes/xmlrpc/xmlrpcs.inc');
include('includes/functions.php');

function ping($xmlrpcmsg)
{
	$from = $xmlrpcmsg->getParam(0)->scalarVal();
	$to = $xmlrpcmsg->getParam(1)->scalarVal();

	if (preg_match('/^http:\/\/w?w?w?\.?fourisland\.com\/blog\/([-a-z0-9]+)\/$/',$to))
	{
		$slug = preg_replace('/^http:\/\/w?w?w?\.?fourisland\.com\/blog\/([-a-z0-9]+)\/$/','$1',$to);

		$getpost = "SELECT * FROM updates WHERE slug = \"" . $slug . "\"";
		$getpost2 = mysql_query($getpost);
		$getpost3 = mysql_fetch_array($getpost2);

		if ($getpost3['slug'] == $slug)
		{

			$c = curl_init();
			curl_setopt($c, CURLOPT_URL, $from);
			curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($c, CURLOPT_HEADER, false);
			$page_data = curl_exec($c);
			curl_close($c);

			if (stripos($page_data,$to) !== FALSE)
			{
				if (preg_match('/<TITLE>([^>]+)<\/TITLE>/i',$page_data,$matches))
				{
					$title = $matches[1];
				} else {
					$title = $from;
				}

				$getping = "SELECT * FROM pingbacks WHERE post_id = " . $getpost3['id'] . " AND url = \"" . mysql_real_escape_string($from) . "\"";
				$getping2 = mysql_query($getping);
				$getping3 = mysql_fetch_array($getping2);

				if ($getping3['url'] == $from)
				{
					return new xmlrpcresp(0, 48, "Target uri cannot be used as target");
				} else {
					$insping = "INSERT INTO pingbacks (post_id,title,url) VALUES (" . $getpost3['id'] . ",\"" . mysql_real_escape_string($title) . "\",\"" . mysql_real_escape_string($from) . "\")";
					$insping2 = mysql_query($insping);
					recalcPop($getpost3['id']);

					return new xmlrpcresp(new xmlrpcval("YAY! Your Pingback has been registered!", "string"));
				}
			} else {
				return new xmlrpcresp(0, 17, "Source uri does have link to target uri");
			}
		} else {
			return new xmlrpcresp(0, 32, "Target uri does not exist");
		}
	} else {
		return new xmlrpcresp(0, 33, "Target uri cannot be used as target");
	}
}

$s = new xmlrpc_server(array(
			"pingback.ping" => array("function" => "ping")));

?>