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

Условия изменения объекта

05.07.2010, 16:31
ditas
Дмитрий Дитас

Зарегистрирован:
2010-03-30
Сообщений: 19

Здравствуйте!
Возникла следующая проблема:
- в компонент состоящий из нескольких полей (строки, файлы, текстовые блоки) добавляю условие добавления объекта (фото):
Код:
$imsize=getimagesize($f_BannerPhoto[tmp_name]);
if ($imsize[0]!=90 || $imsize[1]!=112)
{
$warnText="<span style='color:#ff0000;'><b>Размеры фото (для отображения в баннере слева)</b> должны быть равны <b>90</b> пикселям в ширину и <b>112</b> пикселям в высоту.
Несоответствие этому размеру приведет к некорректному отображению фото на Главной странице сайта.</span>";
$posting=0;
}

Все благополучно работает. НО сохраняется возможность вставить фото некорректного размера при ИЗМЕНЕНИИ объекта.
Поставил подобное условие и на изменение объекта.
В итоге, при изменении любого поля - выводится ошибка о несоответствии размеров фото (Netcat 4.0).
Я чего-то недопонимаю? Или это вопрос в тех-поддержку?
И в догонку - каким образом можно в условия добавления объекта вставить проверку сразу нескольких полей (поля типа Файл, для загрузки изображений заданного размера), чтобы не путались между собой выводы $warnText?
Заранее спасибо за совет.
06.07.2010, 13:50
malich
Андрей Малков

Зарегистрирован:
2005-08-09
Сообщений: 522

1. У вас в коде предполагается, что файл всегда загружен, поэтому и выдаются такие ошибки, нужно еще добавить проверку, загрузил ли пользователь файл, примерно вот так:
if ($_FILES[f_BannerPhoto][size]!=0 && $_FILES[f_BannerPhoto][type]!='')
{
$imsize=getimagesize($f_BannerPhoto[tmp_name]);
if (....){....}
}

2. Вставляйте проверки друг за другом
if (...) {
posting = 0;
$warnText="";
}

if (...) {
posting = 0;
$warnText="";
}
Поля в форме проверяются по очереди, то есть если у вас не заполнены оба поля сначала будет показываться warnText для первого поля, когда оно будет удовлетворять условию, начнет показываться warnText для второго поля.
198 196 2010-07-06 13:50:49 10570
Описание проекта