Trackback не работает в Codeigniter - PullRequest
2 голосов
/ 29 ноября 2011

У меня есть два контроллера:
test.php

public function trackback()
{
    $this->load->library('trackback');
    $tb_data = array(
                 'ping_url'  => 'http://www.citest.com/addtrackback/receive/777',
                 'url'       => 'http://www.citest.com/test/trackback/',
                 'title'     => 'Заголовок',
                 'excerpt'   => 'Текст.',
                 'blog_name' => 'Название блога',
                 'charset'   => 'utf-8'
                 );

    if ( ! $this->trackback->send($tb_data))
    {
        echo $this->trackback->display_errors();
    }
    else
    {
        echo 'Trackback успешно отправлен!';
    }
} 

функция trackback() отправляет trackback информацию

addtrackback.php

public function receive()
{
    $this->load->library('trackback');

    if ($this->uri->segment(3) == FALSE)
    {
        $this->trackback->send_error("Не указан ID записи ");
    }

    if ( ! $this->trackback->receive())
    {
        $this->trackback->send_error("Trackback содержит некорректные данные!");
    }

    $data = array(
                 'tb_id'      => '',
                 'entry_id'   => $this->uri->segment(3),
                 'url'        => $this->trackback->data('url'),
                 'title'      => $this->trackback->data('title'),
                 'excerpt'    => $this->trackback->data('excerpt'),
                 'blog_name'  => $this->trackback->data('blog_name'),
                 'tb_date'    => time(),
                 'ip_address' => $this->input->ip_address()
                 );

    $sql = $this->db->insert_string('trackbacks', $data);
    $this->db->query($sql);

    $this->trackback->send_success();
}

функция receive() получает trackback и записывает ее в таблицу под названием «trackbacks» в базе данных.

Но когда я пытаюсь просмотреть страницу,это приводит к следующей ошибке:

Обнаружена неизвестная ошибка.

Что вызывает эту ошибку?

1 Ответ

0 голосов
/ 03 февраля 2012

вы ссылаетесь на библиотеку или функцию, в которой вы находитесь? if ( ! $this->trackback->send($tb_data))

попробуйте изменить его на что-то вроде

public function trackback(){
$this->load->library('trackbackLibrary');

что вы пытаетесь выполнить, потому что кажется, что вы пытаетесь сделать оператор if для того же процесса.

if ($this->uri->segment(3) == FALSE)
{
    $this->trackback->send_error("Не указан ID записи ");
}

if ( ! $this->trackback->receive())
{
    $this->trackback->send_error("Trackback содержит некорректные данные!");
}

Кроме того, Проверьте ваш файл error_log, чтобы увидеть, какую ошибку выдает его ошибка. /var/log или в некоторых других местах. В зависимости от вашей ОС

...