Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 17 Ответов
  • 11098 Просмотров
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Сессии
« : 12.11.2009, 00:30:23 »
При попытке зайти в админку после ввода логина и пароля выдает:
Код
Fatal error: session_start() [<a href='function.session-start'>function.session-start</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;jparameter&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /home/путь/libraries/joomla/session/session.php on line 423
Хостер бессилен.
Что может быть?

в htaccess вставил php_value session.save_path  /tmp
не помогло
« Последнее редактирование: 16.04.2010, 12:06:24 от Aleks_El_Dia »
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Сессии
« Ответ #1 : 12.11.2009, 00:31:56 »
по умолчанию такой проблемы ни сам не встречал ни на форуме не было
ну а если есть - /tmp существует (с учетом правильного пути) и CHMOD на нее какой?

P.S. версия движка? apache и php?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Сессии
« Ответ #2 : 12.11.2009, 00:56:28 »
Не-не. Путь хранения сессий тут не при чем. А что ты делал перед тем, как получил такой результат? Что именно происходит, я могу объяснить, но вопрос в том, как ты этого добился.

После логина, из сессии поднимаются пользовательские данные. Они там лежат сериализованные. Так вот процесс десериализации данных происходит еще до того, как подключается файл, в котором объявлен тип сериализованного объекта. Т.е. с одной стороны PHP надо его десериализовать, а с другой стороны неизвестно что это за тип. Вот примерно так...

Смотри, в configuration.php есть параметр $session_handler, по умолчанию он имеет значение 'database'. Можно попробовать поиграться с ним, поставить к примеру 'none'.  Или, если на сайте есть какой-нибудь акселератор, то можно еще испробовать: apc, memcache, xcache, eaccelerator. Возможно там просто в сессии "залипло" какое-то кривое значение и все тут...

Кстати, перед этими экспериментами - попробуй просто очистить таблицу jos_session, и снова авторизоваться.
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Сессии
« Ответ #3 : 12.11.2009, 09:35:07 »
После долгой и нудной переписки с хостером пришел вот такой ответ:
Цитировать
Данная проблема напрямую связана с используемой на сайте CMS - Joomla. Дело в том, что Joomla имеет некоторые проблемные места в php-коде, реализующем работу с сессиями на сервере. Эти проблемы никак себя не проявляют при стандартном механизме сессий PHP, однако если метод хранения сессий отличается от стандартного хранения в файлах (так на нашем сервере сессии хранятся в memcache) начинаются проблемы. Нам известно по крайней мере два проблемных момента в коде Joomla, первый - в файле libraries/joomla/session/session.php, там происходит установка директивы session.save_handler в значение files. Непонятно зачем это делается, т.к. files это значение данной директивы по умолчанию. Следующая проблема в том, что устанавливая session.save_handler Joomla не определяет для нее корректного значения session.save_path, в результате получаются проблемы, когда, например, скрипт пытается писать в tcp-сокет как в файл и наоборот.
Вторая проблема кроется в файле libraries/joomla/session/storage.php, здесь происходит создание собственного механизма для работы с сессиями и определение session_set_save_handler, который в связке с описанной выше проблемой не может быть корректно использован.
Данные проблемы относятся к коду CMS, т.е. к вопросу программирования, решать их должны разработчики CMS Joomla. Конечно же понятно, что их решение может затянуться, поэтому я и мой коллега Владимир пытались самостоятельно подправить скрипты CMS для обеспечения ее работы, однако мы не являемся программистами, у нас нет программистов в службе поддержки, поэтому удалось нам это лишь частично.

С папкой tmp все в порядке. Ошибка стала вылезать после каких то манипуляций хостера. Вроде как они изменили метод обработки сессий. С моей стороны никаких действий небыло. С недельку назад просто стало выкидывать из админки при редактировании контента. Пару дней назад после ввода логина и пароля стала вываливатся ошибка. Сайт как бы работает, но в опере, например, при переходе по страницам без авторизации эта же ошибка все равно вываливается.

P.S.: да, забыл добавить что проблема появилась одновременно на всех сайтах на этом хостинге (4 шт.)
P.S.: Joomla! 1.5.14
« Последнее редактирование: 12.11.2009, 10:32:52 от Aleks_El_Dia »
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Сессии
« Ответ #4 : 12.11.2009, 09:53:47 »
В конфиге:
Код: php
	var $session_handler = 'database';

Когда ставлю
Код: php
	var $session_handler = 'files';
На сайте выдает:
Unable to load session storage class: files

Когда ставлю
Код: php
	var $session_handler = 'none';
На сайте выдает:
Код
Fatal error: session_start() [<a href='function.session-start'>function.session-start</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;jparameter&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /home/user360097/data/www/sanyzel-citi.ru/libraries/joomla/session/session.php on line 427

Все записи в таблице сессий удалил. Не помогло.
« Последнее редактирование: 12.11.2009, 10:23:04 от Aleks_El_Dia »
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Сессии
« Ответ #5 : 12.11.2009, 09:58:05 »
Конечно же понятно, что их решение может затянуться, поэтому я и мой коллега Владимир пытались самостоятельно подправить скрипты CMS для обеспечения ее работы, однако мы не являемся программистами, у нас нет программистов в службе поддержки, поэтому удалось нам это лишь частично.
В топку такую поддержку, болванчиков насажали, которые только и могут принять заявку, а потом бегают (дай бог если еще на форумах не спрашивают) как решить проблему!
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Сессии
« Ответ #6 : 12.11.2009, 10:43:35 »
... Или, если на сайте есть какой-нибудь акселератор, то можно еще испробовать: apc, memcache, xcache, eaccelerator. Возможно там просто в сессии "залипло" какое-то кривое значение и все тут...

Написали что "memcache". Выставил в конфиге - Unable to load session storage class: files
Хотя не уверен. Они паралельно что то химичать
« Последнее редактирование: 12.11.2009, 10:51:57 от Aleks_El_Dia »
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Сессии
« Ответ #7 : 12.11.2009, 11:03:16 »
Вот что выяснилось путем проб и ошибок: когда var $session_handler = ''; (пусто тоесть) то сайт работает, ошибок не выдает, но просто не пускает в админку - после ввода логина и пароля перезагружается страница входа и все.
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.

Re: Сессии
« Ответ #8 : 12.11.2009, 18:29:18 »
у меня сегодня выскочила точно такая же проблема.
Причем я совсем ничего не делал для этого. так сказать в один прекрасный день...
решение типа
Цитировать
когда var $session_handler = ''; (пусто тоесть) то сайт работает, ошибок не выдает, но просто не пускает в админку - после ввода логина и пароля перезагружается страница входа и все.
помогает!
а в админку то надо! может подскажет кто что делать?

Joomla! 1.5.14
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3

*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Сессии
« Ответ #9 : 12.11.2009, 21:12:49 »
из всего вышесказанного выход либо трясти техподдержку или менять хостинг!
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Сессии
« Ответ #10 : 12.11.2009, 21:36:55 »
из всего вышесказанного выход либо трясти техподдержку или менять хостинг!
Это верно.
Мой вопрос похоже закрыт. Хостер признал неудачными опыты с memcache и восстановил прежнюю конфигурацию. Более подробнее мне, наверное, не расскажут.
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Сессии
« Ответ #11 : 12.11.2009, 22:30:44 »
Вот что ответили в поддержке:
Цитировать
Что касается исправления этой ошибки - это какая-то странная особенность Joomla - почему-то она перестала подгружать некоторые свои классы перед открытием сессии. Вылечилось это принудительной загрузкой этих классов. А именно вставкой строк:
include_once dirname(__FILE__). '/../html/parameter.php';
include_once dirname(__FILE__). '/../user/user.php';

в начало файла
libraries/joomla/session/session.php
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.

Re: Сессии
« Ответ #12 : 20.11.2009, 01:03:22 »
Аналогичная ситуация, только после отката изменений хостером, один сайт по-прежнему не пускает в админку.
параметр var $session_handler = ''; (пусто)

вставка строк:
include_once dirname(__FILE__). '/../html/parameter.php';
include_once dirname(__FILE__). '/../user/user.php';

в начало файла
libraries/joomla/session/session.php

тоже не помогает. Третьи сутки ломаем голову.

Re: Сессии
« Ответ #13 : 20.11.2009, 02:13:45 »
Помогло var $session_handler = 'database';
Только теперь выкидывает через несколько минут
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Сессии
« Ответ #14 : 20.11.2009, 15:25:28 »
А что за хостинг, если не секрет?
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.

Re: Сессии
« Ответ #15 : 17.01.2010, 19:37:40 »
При попытке зайти в админку после ввода логина и пароля выдает:
Код
Fatal error: session_start() [<a href='function.session-start'>function.session-start</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;jparameter&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /home/user369090/data/www/santech-luxe.ru/libraries/joomla/session/session.php on line 423
Хостер бессилен.
Что может быть?

в htaccess вставил php_value session.save_path  /tmp
не помогло
Я в файле session.php исправил в 3х местах (строки 102, 105, 682) ini_set на @ini_set.
Мне помогло
*

Serjs

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: Сессии
« Ответ #16 : 09.02.2010, 02:57:58 »
Может и поздно пишу но неудержался. Хостер прогибается ставить memcached чтобы улучшить работу юзерам с такими тяжелыми cms как жумла, пытаясь снизить нагрузку на бд, чтобы их же потом не отключили. Они не зная что к чему гонят не на цмс в которой грехов да отбавляй, а сразу на хостера косят. Ну работает у вас сессия в бд, ну лишних 3 запроса на юзеря, ну отключать же вас потом еси онлайн будет за нагрузку на бд сервер. Жумла это ос проект, хотите чтобы что то работало до конца - допиливайте. Вы вот задайте вопрос про сессии на оф форуме, там сами разработчики теряются что менять да где в своем коде.

А то что после установки хранений сессий в бд вас выкидывает, ума посмотреть таймаут жизни сессии не дано?
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Сессии
« Ответ #17 : 09.02.2010, 09:15:51 »
Может и поздно пишу но неудержался. Хостер прогибается ставить memcached чтобы улучшить работу юзерам с такими тяжелыми cms как жумла, пытаясь снизить нагрузку на бд, чтобы их же потом не отключили. Они не зная что к чему гонят не на цмс в которой грехов да отбавляй, а сразу на хостера косят. Ну работает у вас сессия в бд, ну лишних 3 запроса на юзеря, ну отключать же вас потом еси онлайн будет за нагрузку на бд сервер. Жумла это ос проект, хотите чтобы что то работало до конца - допиливайте. Вы вот задайте вопрос про сессии на оф форуме, там сами разработчики теряются что менять да где в своем коде.

А то что после установки хранений сессий в бд вас выкидывает, ума посмотреть таймаут жизни сессии не дано?
При чем тут таймаут? Он явно не в ноль установлен был. И не то что выкидывало - не пускало.
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Помогите решить ошибку

Автор azumi

Ответов: 21
Просмотров: 4652
Последний ответ 08.09.2020, 18:47:08
от gartes
Не работает кнопка отправить ?

Автор warlocksp

Ответов: 6
Просмотров: 1681
Последний ответ 10.03.2017, 11:34:50
от warlocksp
Joomla 1.5.23 обновление до самой новой версии

Автор AlexeyPavlov

Ответов: 6
Просмотров: 3076
Последний ответ 12.08.2015, 16:30:53
от SeBun
Где найти перечень отличий версий Joomla 1.5?

Автор ABCroNews

Ответов: 3
Просмотров: 9924
Последний ответ 28.07.2015, 12:35:00
от ShniderHost
При индексации добавляются фразы "porn"

Автор Tsepov

Ответов: 6
Просмотров: 2212
Последний ответ 08.02.2015, 12:41:43
от Mihanja80