Функция БД не сообщает об ошибках при добавлении новой статьи в Joomla

Возможный дубликат:
500 - Произошла ошибка! Функция БД не сообщает об ошибках при добавлении новой статьи в Joomla!

У меня есть статья, которую я хочу опубликовать на моем Joomla! сайт. Каждый раз, когда я нажимаю применить или сохранить. Я получаю ошибку 500 - An error has occurred! DB function reports no errors. Я понятия не имею, почему появляется эта ошибка, но я думаю, что это ошибка сервера.

Я использую TinyMCE для набора статей вместе с Joomla! 1.5.11.

Обновлено: я включил максимальные отчеты об ошибках в Joomla! а в менеджере статей я пытался сохранить статью и получил вот эти пару ошибок. Пожалуйста, проверьте скриншот

alt text
(источник: технический портал .co.za)

я пытался добавить

<?php
ini_set('error_reporting', E_ALL);
error_reporting(E_ALL);
ini_set('log_errors',TRUE);
ini_set('html_errors',TRUE);
ini_set('display_errors',true);
?>

в верхней части страниц index.php для Joomla! но ошибок не показывает. Я проверил журналы ошибок на сервере, и также никаких ошибок не возникает.

Мне удалось опубликовать статью через phpMyAdmin, но потом происходит что-то еще. Я пытаюсь получить доступ к статье из внешнего интерфейса, нажав на ссылку на статью, но появляется только пустая страница.

Это действительно странно, так как журнал ошибок не показывает никакой информации. Поэтому я предполагаю, что ошибка должна исходить от Joomla!

Это происходит, если я добавляю print_r($_POST) перед if (!$row->check()) {

    Array
(
    [title] => Test.
    [state] => 0
    [alias] => test
    [frontpage] => 0
    [sectionid] => 10
    [catid] => 44
    [details] => Array
        (
            [created_by] => 62
            [created_by_alias] => 
            [access] => 0
            [created] => 2008-10-25 13:31:21
            [publish_up] => 2008-10-25 13:31:21
            [publish_down] => Never
        )

    [params] => Array
        (
            [show_title] => 
            [link_titles] => 
            [show_intro] => 
            [show_section] => 
            [link_section] => 
            [show_category] => 
            [link_category] => 
            [show_vote] => 
            [show_author] => 1
            [show_create_date] => 0
            [show_modify_date] => 0
            [show_pdf_icon] => 
            [show_print_icon] => 
            [show_email_icon] => 
            [language] => 
            [keyref] => 
            [readmore] => 
        )

    [meta] => Array
        (
            [description] => Test.
            [keywords] => Test
            [robots] => 
            [author] => Test
        )

    [id] => 58
    [cid] => Array
        (
            [0] => 58
        )

    [version] => 30
    [mask] => 0
    [option] => com_content
    [task] => apply
    [ac1e0853fb1b3f41730c0d52de89dab7] => 1
)

person Elitmiar    schedule 06.08.2009    source источник
comment
Я не уверен, почему это происходит. Тем не менее, вам следует перейти на Joomla 1.5.14, так как в ней есть последние исправления ошибок и патчи безопасности.   -  person jlleblanc    schedule 06.08.2009
comment
Обновился до последней версии 1.5.14 и теперь мои кнопки применить и сохранить больше не хотят работать???   -  person Elitmiar    schedule 07.08.2009
comment
Попробуйте опубликовать свой error.log с веб-сервера и базы данных.   -  person mike    schedule 11.08.2009
comment
Это точно ошибка сервера, читал на форуме, что это может быть mod_security. Однако мне нужен способ опубликовать эту статью, мой хост не может вносить какие-либо изменения в конфигурацию сервера, так как это создаст брешь в безопасности.   -  person Elitmiar    schedule 11.08.2009
comment
Это не ошибки. Это стек вызовов, сообщающий, где возникает ошибка. Вы проверяли журнал ошибок php?   -  person I.devries    schedule 14.08.2009
comment
Если я добавлю ini_set('error_reporting', E_ALL); отчет об ошибках (E_ALL); ini_set('log_errors',ИСТИНА); ini_set('html_errors',ИСТИНА); ini_set('display_errors', правда); в верхней части админки index.php ошибок не вызывает   -  person Elitmiar    schedule 17.08.2009
comment
(закрыт как дубликат, чтобы новый оставался открытым; я надеюсь, что вы получите ответ ... хотя я не могу)   -  person Marc Gravell    schedule 20.08.2009


Ответы (3)


Исключение выдается здесь в /administrator/components/com_content/controller.php (около 693)

if (!$row->check()) {
    JError::raiseError( 500, $db->stderr() );
    return false;
}

Функция check() возвращает false только в двух случаях: либо title, либо introtext пусты.

В вашем случае я бы отредактировал файл controller.php выше и повторил var_dump из $row до того, как возникнет ошибка. Возможно, от $_POST не приходят данные.


Изменить: похоже, что в вашем $_POST нет основной части вашей статьи. Скорее всего, это связано с формой, которая отправляет данные. На странице, где вы пытаетесь создать статью, взгляните на исходный код HTML. В моей установке Joomla текстовое поле называется "text". Убедитесь, что у него есть это имя, и что ничто другое в этой форме не называется "text".

person nickf    schedule 17.08.2009
comment
Был ли var_dump и интротекст пустым object(JTableContent)#128 (34) { [id]=› int(58) [title]=› string(67) Broken Article. [псевдоним]=> строка (65) неработающая статья [название_алиас] => NULL [вводный текст] => строка (0) [полный текст] => строка (0) - person Elitmiar; 17.08.2009
comment
Но почему он устанавливает для интротекста значение NULL. - person Elitmiar; 17.08.2009
comment
Так как все остальные статьи работают нормально - person Elitmiar; 17.08.2009
comment
попробуйте print_r($_POST) там тоже. - person nickf; 17.08.2009
comment
Проверьте описание моей проблемы, я обновил его результатами print_r($_POST) - person Elitmiar; 17.08.2009
comment
Можете ли вы опубликовать точное содержание статьи, которую вы пытаетесь сохранить? - person jlleblanc; 17.08.2009
comment
Я, к сожалению, не могу этого сделать. Конфиденциальная информация - person Elitmiar; 17.08.2009

500 ошибок часто являются фатальной ошибкой, вызванной PHP. Вероятно, на вашем сервере отключено отображение ошибок, потому что пользователи не должны видеть эти ошибки.

Поместите это где-нибудь в свой php-код и проверьте, видите ли вы какие-либо ошибки PHP:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
person I.devries    schedule 11.08.2009
comment
Никаких ошибок не появляется при добавлении этого вверху страницы - person Elitmiar; 17.08.2009

Это фатальная ошибка сервера. Мы не сможем решить вашу проблему, пока не узнаем, что это за сообщение об ошибке, поэтому первый шаг — просмотреть файлы журналов и включить отладочный вывод, чтобы узнать, что это за сообщение об ошибке.

Чтобы включить все выходные данные отладки, добавьте следующий код вверху страницы:

<?php
ini_set('error_reporting', E_ALL);
error_reporting(E_ALL);
ini_set('log_errors',TRUE);
ini_set('html_errors',TRUE);
ini_set('display_errors',true);
?>

Похоже, вы пытаетесь добавить содержательную статью в админку.

В component/com_content/controller.php, например, 693, мы видим, что возникает ошибка, потому что данные, которые вы пытались сохранить, недействительны. Либо вы установили расширение, которое портит joomla, либо каким-то другим способом система не стабильна.

Я рекомендую удалить расширения; если это не поможет, переустановите Joomla, чтобы решить проблему.

person deepwell    schedule 12.08.2009
comment
Пожалуйста, посмотрите мой скриншот, который я добавил - person Elitmiar; 13.08.2009
comment
Я добавил эти строки вверху страницы, и никаких ошибок не возникает. - person Elitmiar; 17.08.2009
comment
Я создал новую Joomla! install, и эта ошибка возникает при чистой установке без каких-либо дополнительных расширений. - person Elitmiar; 17.08.2009