summary refs log tree commit diff stats
path: root/xmlrpc.php
diff options
context:
space:
mode:
Diffstat (limited to 'xmlrpc.php')
-rw-r--r--xmlrpc.php101
1 files changed, 101 insertions, 0 deletions
diff --git a/xmlrpc.php b/xmlrpc.php new file mode 100644 index 0000000..2c634d3 --- /dev/null +++ b/xmlrpc.php
@@ -0,0 +1,101 @@
1<?php
2/*
3 444444444
4 4::::::::4
5 4:::::::::4
6 4::::44::::4
7 4::::4 4::::4 Four Island
8 4::::4 4::::4
9 4::::4 4::::4 Written and maintained by Starla Insigna
104::::444444::::444
114::::::::::::::::4 xmlrpc.php
124444444444:::::444
13 4::::4 Please do not use, reproduce or steal the
14 4::::4 contents of this file without explicit
15 4::::4 permission from Hatkirby.
16 44::::::44
17 4::::::::4
18 4444444444
19*/
20
21require('headerproc.php');
22
23include('../security/config.php');
24include('includes/db.php');
25include('includes/xmlrpc/xmlrpc.inc');
26include('includes/xmlrpc/xmlrpcs.inc');
27include('includes/functions.php');
28
29function ping($xmlrpcmsg)
30{
31 $from = $xmlrpcmsg->getParam(0)->scalarVal();
32 $to = $xmlrpcmsg->getParam(1)->scalarVal();
33
34 if (preg_match('/^http:\/\/w?w?w?\.?fourisland\.com\/blog\/([-a-z0-9]+)\/$/',$to))
35 {
36 $slug = preg_replace('/^http:\/\/w?w?w?\.?fourisland\.com\/blog\/([-a-z0-9]+)\/$/','$1',$to);
37
38 $getpost = "SELECT * FROM updates WHERE slug = \"" . $slug . "\"";
39 $getpost2 = mysql_query($getpost);
40 $getpost3 = mysql_fetch_array($getpost2);
41
42 if ($getpost3['slug'] == $slug)
43 {
44
45 $c = curl_init();
46 curl_setopt($c, CURLOPT_URL, $from);
47 curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
48 curl_setopt($c, CURLOPT_HEADER, false);
49 $page_data = curl_exec($c);
50 curl_close($c);
51
52 if (stripos($page_data,$to) !== FALSE)
53 {
54 if (preg_match('/<TITLE>([^>]+)<\/TITLE>/i',$page_data,$matches))
55 {
56 $title = $matches[1];
57 } else {
58 $title = $from;
59 }
60
61 $text = substr($page_data,(stripos($page_data,$to)-300),700);
62 $text = strip_tags($text);
63 $text = str_replace("\n",' ',$text);
64
65 $commentText = "[url=" . $from . "]" . $title . "[/url]\n\n[....] " . $text . " [....]";
66
67 $getping = "SELECT * FROM comments WHERE page_id = \"updates-" . $getpost3['id'] . "\" AND comment = \"" . addslashes($commentText) . "\"";
68 $getping2 = mysql_query($getping);
69 $getping3 = mysql_fetch_array($getping2);
70
71 if ($getping3['comment'] == $commentText)
72 {
73 return new xmlrpcresp(0, 48, "Target uri cannot be used as target");
74 } else {
75 $insping = "INSERT INTO comments (page_id,username,comment) VALUES (\"updates-" . $getpost3['id'] . "\",\"Pingback\",\"" . $commentText . "\")";
76 $insping2 = mysql_query($insping);
77 recalcPop($getpost3['id']);
78
79 return new xmlrpcresp(new xmlrpcval("YAY! Your Pingback has been registered!", "string"));
80 }
81 } else {
82 return new xmlrpcresp(0, 17, "Source uri does have link to target uri");
83 }
84 } else {
85 return new xmlrpcresp(0, 32, "Target uri does not exist");
86 }
87 } else {
88 return new xmlrpcresp(0, 33, "Target uri cannot be used as target");
89 }
90}
91
92function rr($xmlrpcmsg)
93{
94 return new xmlrpcresp(new xmlrpcval(0, "int"));
95}
96
97$s = new xmlrpc_server(array(
98 "pingback.ping" => array("function" => "ping"),
99 "InstaDisc.checkRegistration" => array("function" => "rr")));
100
101?>