Проблема со SquirrelMail и PHP 4.4.0

alexhemp

Новичок
Проблема со SquirrelMail и PHP 4.4.0

Имеется рабочая инсталляция SquirrelMail, но довольно старая. Фишка в том, что ее где-то год назад заточили под работу в нашей организации, вставили всяких корпоративных фишек связанных с нашей компанией (плагины какие-то, изменения дизайна, изменения языковых файлов и т.п.)

Проблемы начались по переходе на сервере на PHP 4.4.0

Периодически при попытке скачать ататчмент показывает сообщения вида
Fatal error: Call to a member function on a non-object in /usr/local/www/mail/src/read_body.php on line 416
Причем только на второе скачивание за сессию (т.е. что-то неверно в сессии сохранилось).

Я понимаю, что это проблема появилась из-за того, что в PHP 4.4.0 пофиксили какую-то старую концептуальную багу со ссылками на объекты.

Но поскольку я такое сам не использую, подробности от меня ускользнули. Расскажите в чем суть данной проблемы, а прокопаю код на предмет устранения ее в SquirrelMail :)
 

svetasmirnova

маленький монстрик
Приведи код с ошибкой. Я смотрела SquirrelMail, мне она показалась качественной, поэтому думаю, что пофиксить будет несложно.
 

alexhemp

Новичок
svetasmirnova

В том то все и дело - что ошибка известная
http://www.google.ru/search?hl=ru&q=Fatal+error:+Call+to+a+member+function+on+a+non-object+in+read_body.php&lr=

Пофиксено типа в CVS - но там такое количество кода пофиксено, что хрен разберешься... :-(

Но прикол так-же в том что она появляется только при втором скачивании файла, первое - нормально!

Вот и хочется понять, как-же вот это поменяло поведение кода http://www.php.net/release_4_4_0.php
Хочется найти это место и пофиксить эту мелкую неприятность без установки новой версии.
 

svetasmirnova

маленький монстрик
Мне нравится =) Света, поищи мою ошибку в гугле.
И читай, Света, полтора экрана объяснялок.
PHP же тебе по-русски пишет: Вызов функции-члена необъекта. NULL, скорее всего, в 416 строке. Откуда там NULL - я не знаю. Не хочешь обновлять: ищи откуда NULL. cvs и diff в помощь.

-~{}~ 04.10.05 21:11:

В новых версиях более строгое отношение к неаккураному коду. И несколько таких же известных вещей. На зубок я их не помню, конечно =)
 

alexhemp

Новичок
svetasmirnova

И несколько таких же известных вещей. На зубок я их не помню, конечно =)
Вот что я хочу получить - примеры которые работают 4.3.x и не работают в 4.4.0 - потому что я лично не сталкивался (ну не использую сложных систем классов в проектах на PHP).

Все то что ты написала про CVS/diff мне известно, но если ты видела SquirrelMail - представляешь объем кода... Хочется хотя-бы узнать какие типовые ошибки проблемы такого рода.
 

svetasmirnova

маленький монстрик
Пожалуйста, навскидку бессмысленный пример. Только *это* в данном случае не поможет:
PHP:
shuffle(array(1, 2, 3));
И я не прошу *весь* код, а только строчку №416 из файла /usr/local/www/mail/src/read_body.php
Ну и 3 сверху/3 снизу
 

alexhemp

Новичок
svetasmirnova

Там ничего такого. Просто вызов метода класса внутри ф-ции, экземпляр передан как параметр.

Хорошо, я идею примерно понял, нужно следить чтобы явно создавались экземпляры при передаче в качестве параметра.
 
Сверху