Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Ошибка в добавлении полей у системных таблиц

11.12.2006, 10:41
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Хочу обратить внимание разработчиков системы на следующий баг, который присутствует во всех версиях 2.4 (и даже в лайте улыбка

Описание ошибки:
При попытке добавить в системных таблицах поле с указанным значением по умолчанию происходит следующее:
1. Добавляется запись в таблицу Field с описанием добавленного поля.
2. В системной таблице не добавляется поле желаемое поле!

Что приводит к нарушению целостности БД. Юзер видет, что поле есть, но самом деле его нет! Со всеми вытекающими последствиями...

Место ошибки - файл /netcat/admin/field/system.inc.php функция ColumnInMessage

Ошибочный код:
Код:

if ($DefaultState!="" && $TypeOfDataID!=3)
{
$alter.= " NOT NULL DEFAULT '$DefaultState'";
}
else
{
if ($NotNull)
{
$alter.= " NOT NULL";
}
else
{
$alter.= " NULL";
}
$AlterResult = $db->query($alter) ;
}



Правильный код:
Код:

if ($DefaultState!="" && $TypeOfDataID!=3)
{
$alter.= " NOT NULL DEFAULT '$DefaultState'";
}
else
{
if ($NotNull)
{
$alter.= " NOT NULL";
}
else
{
$alter.= " NULL";
}
}
$AlterResult = $db->query($alter) ;



Temet nosce...
11.12.2006, 11:42
chelout
Островский Вячеслав
chelout

Зарегистрирован:
2006-08-23
Сообщений: 73

Да, мы знаем об этой ошибке, она уже исправлена. Исправление будет в следующем обновлении.
198 196 2006-12-11 11:42:25 8045
Описание проекта