Объявление

Хотите приглашение на сайт? Пишите: niikto@samovarchik.info


 

Re: Сайт не даёт менять параметры пользователей

у пользователя blaack_d попрбовал добавить "прим. администратора" (было пустое), и выдало:

Ошибка сервера
На веб-сайте произошла ошибка при получении http://samovarchik.info/profile.php?sec … ials&id=40. Веб-сайт может быть закрыт на обслуживание или настроен неправильно.
Вот несколько советов и рекомендаций:
Обновите эту страницу позже.

выдает аналогичную ошибку когда пытаешься сменить ему часовой пояс

Re: Сайт не даёт менять параметры пользователей

попробовал на другом пользователе - аналогично. Очевидно что-то с сервером

Re: Сайт не даёт менять параметры пользователей

Исправил.

Re: Сайт не даёт менять параметры пользователей

yoorick пишет

Исправил.

Сама по себе проблема была банальной - отсутствие префикса пространства имен перед именем класса. Но это только вершина айсберга. Куда более странным было то, что вместо исключения от автозагрузчика классов мы имели "белую страницу смерти" из-за того, что скрипт завершался фатальной ошибкой. Из документации следует, что для PHP >= 5.3.0 такого быть не должно. Но оно есть!

Простейший код, воспроизводящий ошибку:

<?php

set_exception_handler(function (Exception $ex) {
    echo $ex->getMessage().'<br />';
});

spl_autoload_register(function ($className) {
    echo $className.'<br/>';
    if (!class_exists($className, false))
        throw new Exception('Error: '.$className.' does not exist!');
});

Test::foo();

?>

Выведет нам только:

Test

Загвоздка тут именно в том, что мы вызываем статический метод класса.
Если вызов метода заменить на создание класса:

$test = new Test();

то мы, как и ожидалось, увидим:

Test
Error: Test does not exist!

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

Адекватного решения проблемы пока не вижу.

Re: Сайт не даёт менять параметры пользователей

может он там "тюненный" какой - на хостинге?

Re: Сайт не даёт менять параметры пользователей

niikto пишет

может он там "тюненный" какой - на хостинге?

Я на своем компьютере это тоже воспроизвожу.
Больше похоже на "особенность" PHP. Позже вернусь к этому вопросу, сегодня и так весь день убил на него (будет обидно, если решение элементарное и лежит на поверхности :) ). Оно не сильно критично на данный момент - что так, что так действие по сохранению параметров в профиле оканчивалось бы фатально, разница только в том, что при выбросе исключения было бы более-менее понятное сообщение об ошибке в браузер, а так пришлось лезть в логи.

Редактировался yoorick (19.09.2012, 00:05:22)

Re: Сайт не даёт менять параметры пользователей

И все-таки это - баг PHP.

Интересно, что самый ранний тикет о нем, который я увидел, создан еще в 2010 году, и был закрыт разработчиками под предлогом "так и должно быть".

В последнем же тикете, после моего комментария активировалась дискуссия между разработчиками и создателем тикета, в результате которой баг вроде бы признали, но сам тикет пока остается закрытым.

Буду следить за развитием событий :)

 

Дизайн сайта отсутствует
оформление: Группа «САМОВАРчик»

[ Сгенерировано за 0.019 сек, 8 запросов выполнено - Использовано памяти: 1.89 MiB (Пик: 1.95 MiB) ]