API: Throwing a more specific error message when the client tries to create empty...
[lhc/web/wiklou.git] / trackback.php
index 50a3341..bcb6376 100644 (file)
@@ -1,18 +1,18 @@
 <?php
 /**
  * Provide functions to handle article trackbacks.
- * @addtogroup SpecialPage
+ * @file
+ * @ingroup SpecialPage
  */
 require_once( './includes/WebStart.php' );
-
-require_once('DatabaseFunctions.php');
+require_once( './includes/DatabaseFunctions.php' );
 
 /**
  *
  */
 function XMLsuccess() {
-       echo "
-<?xml version=\"1.0\" encoding=\"utf-8\"?>
+       header("Content-Type: application/xml; charset=utf-8");
+       echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
 <response>
 <error>0</error>
 </response>
@@ -22,8 +22,8 @@ function XMLsuccess() {
 
 function XMLerror($err = "Invalid request.") {
        header("HTTP/1.0 400 Bad Request");
-       echo "
-<?xml version=\"1.0\" encoding=\"utf-8\"?>
+       header("Content-Type: application/xml; charset=utf-8");
+       echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
 <response>
 <error>1</error>
 <message>Invalid request: $err</message>
@@ -36,17 +36,16 @@ if (!$wgUseTrackbacks)
        XMLerror("Trackbacks are disabled.");
 
 if (   !isset($_POST['url'])
-    || !isset($_POST['blog_name'])
     || !isset($_REQUEST['article']))
        XMLerror("Required field not specified");
 
 $dbw = wfGetDB(DB_MASTER);
 
-$tbtitle = $_POST['title'];
-$tbex = $_POST['excerpt'];
-$tburl = $_POST['url'];
-$tbname = $_POST['blog_name'];
-$tbarticle = $_REQUEST['article'];
+$tbtitle = strval( @$_POST['title'] );
+$tbex = strval( @$_POST['excerpt'] );
+$tburl = strval( $_POST['url'] );
+$tbname = strval( @$_POST['blog_name'] );
+$tbarticle = strval( $_REQUEST['article'] );
 
 $title = Title::newFromText($tbarticle);
 if (!isset($title) || !$title->exists())
@@ -59,7 +58,8 @@ $dbw->insert('trackbacks', array(
        'tb_ex'         => $tbex,
        'tb_name'       => $tbname
 ));
+$dbw->commit();
 
 XMLsuccess();
-exit;
+
 ?>