|
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...
|