Beispiel #1
0
     $trackback->plugin->doAction('before-receive-trackback', $articleId);
     // Deny Ping from the same page
     $checkSql = 'SELECT ' . 'COUNT(id) ' . 'FROM ' . TRACKBACK_TABLE . ' ' . 'WHERE ' . '(blog_id = :article_id)' . ' AND ' . '(url = :url)';
     $stmt = $trackback->db->prepare($checkSql);
     $stmt->execute(array(':article_id' => $articleId, ':url' => $url));
     $checkRow = $stmt->fetchColumn();
     // Deny ping if the content is same with previously posted one
     $checkSql2 = 'SELECT ' . 'COUNT(id) ' . 'FROM ' . TRACKBACK_TABLE . ' ' . 'WHERE ' . '(title = :title)' . ' AND ' . '(excerpt = :excerpt)';
     $stmt2 = $trackback->db->prepare($checkSql2);
     $stmt2->execute(array(':title' => $title, ':excerpt' => $excerpt));
     $checkRow2 = $stmt2->fetchColumn();
     if ($checkRow == 0 && $checkRow2 == 0) {
         //            $trackback->db->query('BEGIN;');
         $fdate = gmdate('Y-m-d H:i:s', time() + $config['tz'] * 3600);
         $sql = 'INSERT INTO ' . TRACKBACK_TABLE . ' ' . '(`blog_id`, `title`, `excerpt`, `url`, `name`, `date`)' . ' VALUES ' . '(:article_id, :title, :excerpt, :url, :name, :fdate)';
         $sql = $trackback->setDelimitedIdentifier($sql);
         $stmt3 = $trackback->db->prepare($sql);
         $res = $stmt3->execute(array(':article_id' => $articleId, ':title' => $title, ':excerpt' => $excerpt, ':url' => $url, ':name' => $name, ':fdate' => $fdate));
         if ($res) {
             $error = 0;
             $message = 'Ping received.';
         } else {
             $error = 1;
             $message = 'Internal error!';
         }
         //            $trackback->db->query('COMMIT;');
     } else {
         $error = 1;
         $message = 'Ping denied.';
     }
 }