[ Index ]
 

Code source de e107 0.7.8

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/e107_plugins/trackback/ -> trackbackClass.php (source)

   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  ?>


Généré le : Sun Apr 1 01:23:32 2007 par Balluche grâce à PHPXref 0.7