|
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?
Заранее спасибо за совет.
|
|
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 для второго поля.
|