| [ Index ] |
|
Code source de e107 0.7.8 |
1 <?php 2 /* 3 + ----------------------------------------------------------------------------+ 4 | e107 website system 5 | 6 | ©Steve Dunstan 2001-2002 7 | http://e107.org 8 | jalist@e107.org 9 | 10 | Released under the terms and conditions of the 11 | GNU General Public License (http://gnu.org). 12 | 13 | $Source: /cvsroot/e107/e107_0.7/e107_plugins/trackback/trackbackClass.php,v $ 14 | $Revision: 1.10 $ 15 | $Date: 2007/01/29 20:23:58 $ 16 | $Author: e107steved $ 17 +----------------------------------------------------------------------------+ 18 */ 19 20 if (!defined('e107_INIT')) { exit; } 21 22 class trackbackClass 23 { 24 25 function sendTrackback ($permLink, $pingUrl, $title, $excerpt) 26 { 27 global $e107; 28 29 $title = urlencode(stripslashes($title)); 30 $excerpt = urlencode(stripslashes($excerpt)); 31 $blog_name = urlencode(stripslashes(SITENAME)); 32 $permLink = urlencode(stripslashes($e107->base_path.$permLink)); 33 $query_string = "title=".$title."&url=".$permLink."&blog_name=".$blog_name."&excerpt=".$excerpt; 34 35 if (strstr($pingUrl, '?')) 36 { 37 $pingUrl .= "&".$query_string; 38 $fp = fopen($pingUrl, 'r'); 39 $response = fread($fp, 4096); 40 fclose($fp); 41 } 42 else 43 { 44 45 $trackback_url = parse_url($pingUrl); 46 47 if ((isset($trackback_url["query"])) && ($trackback_url["query"] != "")) 48 { 49 $trackback_url["query"] = "?" . $trackback_url["query"]; 50 } 51 else 52 { 53 $trackback_url["query"] = ""; 54 } 55 56 if ((isset($trackback_url["port"]) && !is_numeric($trackback_url["port"])) || (!isset($trackback_url["port"]))) 57 { 58 $trackback_url["port"] = 80; 59 } 60 61 $header = 'POST ' . $trackback_url['path'] . $trackback_url['query'] . " HTTP/1.0\r\n"; 62 $header .= 'Host: '.$trackback_url['host']."\r\n"; 63 $header .= 'Content-Type: application/x-www-form-urlencoded'."\r\n"; 64 $header .= 'Content-Length: '.strlen($query_string)."\r\n"; 65 $header .= "\r\n"; 66 $header .= $query_string; 67 68 $socket = fsockopen($trackback_url["host"], $trackback_url["port"]); 69 70 if (!is_resource($socket)) { 71 return "$trackbackClass -> sendTrackback: Unable to connect to $pingUrl."; 72 } 73 74 fputs($socket, $header); 75 76 $response = ""; 77 while (!feof($socket)) { 78 $response .= fgets($socket, 4096); 79 } 80 fclose($socket); 81 82 } 83 84 if(strstr($response, "<error>0</error>")) 85 { 86 return FALSE; 87 } 88 else 89 { 90 if(preg_match("#\<message\>(.*?)\<\/message\>#", $response, $match)) 91 { 92 return $match[0]; 93 } 94 else 95 { 96 return "No error returned."; 97 } 98 } 99 100 } 101 102 function respondTrackback () 103 { 104 global $sql, $pref, $tp; 105 $errorMessage = ""; 106 if(!$pref['trackbackEnabled']) 107 { 108 $errorMessage = "This site does not allow trackbacks."; 109 } 110 111 $pid = (isset($_GET['pid']) ? intval($_GET['pid']) : intval($_POST['pid'])); 112 $permLink = (isset($_GET['url']) ? $_GET['url'] : $_POST['url']); 113 $permLink = $tp -> toDB($permLink); 114 $blog_name = (isset($_GET['blog_name']) ? $_GET['blog_name'] : $_POST['blog_name']); 115 $blog_name = $tp -> toDB($blog_name); 116 $title = (isset($_GET['title']) ? $_GET['title'] : $_POST['title']); 117 $title = $tp -> toDB($title); 118 $excerpt = (isset($_GET['excerpt']) ? $_GET['excerpt'] : $_POST['excerpt']); 119 $excerpt = $tp -> toDB($excerpt); 120 121 /* debug */ 122 /* 123 $debug_str = "Query string: ".e_TBQS."\n"; 124 $debug_str .= "GET INFO: \n"; 125 foreach($_GET as $key => $get) 126 { 127 $debug_str .= "$key => $get\n"; 128 } 129 $debug_str .= "POST INFO: \n"; 130 foreach($_POST as $key => $get) 131 { 132 $debug_str .= "$key => $get\n"; 133 } 134 $sql -> db_Insert("debug", "0, '".time()."', '$debug_str' "); 135 */ 136 /* end debug */ 137 138 139 if(!$pid) 140 { 141 $errorMessage = "No permanent ID sent."; 142 } 143 144 if(!isset($pid) || !is_numeric($pid)) 145 { 146 $errorMessage = "No known item with that pid (pid sent as ".$pid.")."; 147 } 148 149 $excerpt = ($excerpt ? strip_tags($excerpt) : "I found your news item interesting, I've added a trackback to it on my website :)"); 150 $title = ($title ? $title : "Trackbacking your news item ..."); 151 $blog_name = ($blog_name ? $blog_name : "Anonymous site"); 152 153 if(!$errorMessage) 154 { 155 if(!$sql -> db_Insert("trackback", "0, $pid, '$title', '$excerpt', '$permLink', '$blog_name' ")) 156 { 157 $errorMessage = "Unable to enter your trackback information into the database -> 0, $pid, '$title', '$excerpt', '$permLink', '$blog_name'"; 158 } 159 } 160 161 if($errorMessage) 162 { 163 echo '<?xml version="1.0" encoding="iso-8859-1"?'.">\n"; 164 echo "<response>\n"; 165 echo "<error>1</error>\n"; 166 echo "<message>".$errorMessage."</message>\n"; 167 echo "</response>"; 168 } 169 else 170 { 171 echo '<?xml version="1.0" encoding="iso-8859-1"?'.">\n"; 172 echo "<response>\n"; 173 echo "<error>0</error>\n"; 174 echo "</response>"; 175 } 176 } 177 } 178 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Sun Apr 1 01:23:32 2007 | par Balluche grâce à PHPXref 0.7 |