За последние 24 часа нас посетили 25266 программистов и 1736 роботов. Сейчас ищут 916 программистов ...

В чем ошибка условия?

Тема в разделе "PHP для новичков", создана пользователем nixx, 9 мар 2013.

  1. nixx

    nixx Активный пользователь

    С нами с:
    20 фев 2013
    Сообщения:
    132
    Симпатии:
    0
    Не хочет работать if .В чем ошибка условия?
    Код (Text):
    1. $size=getimagesize("$tmp_name");
    2. if($size[0]>1024 and $size[1]>768 and $size[0]<160  and $size[1]<120  and $fotosize>0  and $fotosize<$max_file_size)
    3.  exit("<br />Максимальный размер изображений  не должен превышать 1024&times;768 px<br />Минимальный размер изображений 160&times;120 px");
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    в этом. левее все ок - если ширина НЕ между 160-1024 и высота НЕ между 120-768. а вот тут логика слетает - если размер больше 0 (да, таким у будет файл если он не пуст) и размер меньше допустимого (да, валидный файл будет меньше допустимого).
    данное же условие будет работать "корректно", если дать проглотить ему изображение размером к примеру 1024*768 (выполнение условий измерений) и при этом по размеру большее чем $max_file_size - тогда один 0 не даст на выходе 1 и вы не увидите сообщения об ошибке.
     
  3. nixx

    nixx Активный пользователь

    С нами с:
    20 фев 2013
    Сообщения:
    132
    Симпатии:
    0
    $fotosize - это размер в байтах.Ошибку ,как таковую не выдает.Изображения ,данные которых подходят к условиям,почему-то загружаются ((
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    напишите данные об изображении которое почему-то загружается
     
  5. jenya777777

    jenya777777 Активный пользователь

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    $size[0]>1024 and $size[0]<160
    Тут надо поставить скорее всего OR
    И соответственно в $size[1]
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    кстати, да
     
  7. nixx

    nixx Активный пользователь

    С нами с:
    20 фев 2013
    Сообщения:
    132
    Симпатии:
    0
    Погуглил насчет таких длинных условий.Их мало применяют в таком виде.Надо походу через switch или разделять условия на простые.
    Код (Text):
    1. if($size[0]>1024 and $size[1]>768)exit("Максимальный размер изображений  не должен превышать 1024&times;768 px");
    2. if ($size[0]<160 and $size[1]<120)exit("Минимальный размер изображений 160&times;120 px");
    3. //if   ($fotosize>0 and $fotosize<$max_file_size) ...