Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: сравнение типов файла всегда false ???

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Andrylik
Отправлено: 28 Марта, 2013 - 12:37:41
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




этот кусок кода всегда возвращает false , сую картинку в формате PNG

$infoFoto1 = @getimagesize($_FILES['foto1']['tmp_name']);
if ($infoFoto1[2] !== 1 OR $infoFoto1[2] !== 2 OR $infoFoto1[2] !== 3){
$this->errMsg = "Фото1 - данный формат файла не поддерживается!";return false;
}

а так все хорошо...
$infoFoto1 = @getimagesize($_FILES['foto1']['tmp_name']);
if ( $infoFoto1[2] !== 3){
$this->errMsg = "Фото1 - данный формат файла не поддерживается!";return false;
}

первый раз натыкаюсь на то что if () не отрабатывает....
в чем может быть дело ?
 
 Top
avtor.fox
Отправлено: 28 Марта, 2013 - 12:50:55
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




Andrylik, сдаётся мне что в руках дело.
PHP:
скопировать код в буфер обмена
  1. $i = getimagesize('img.jpg');
  2. var_dump($i[0]); //int
  3. var_dump($i[0] == 1); //bool false
  4. var_dump($i[0] === 1); //bool false
  5. var_dump($i[0] !== 1 && $i[0] !== 2 && $i[0] !== 3); //bool true
  6. var_dump($e[0] !== 1 or $e[0] !== 2 or $e[0] !== 3); //bool true
  7. var_dump($e[0] !== 1 || $e[0] !== 2 || $e[0] !== 3); //bool true

(Отредактировано автором: 28 Марта, 2013 - 12:55:00)

 
 Top
imya
Отправлено: 28 Марта, 2013 - 12:52:19
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




1) Оформите код нормально, используйте тег


2) Вместо OR напишите ||


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
Мелкий Супермодератор
Отправлено: 28 Марта, 2013 - 13:00:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




PHP:
скопировать код в буфер обмена
  1. $infoFoto1 = null;
  2.  if ($infoFoto1[2] !== 1 OR $infoFoto1[2] !== 2 OR $infoFoto1[2] !== 3){
  3.  var_dump('мы тут');
  4.  }

Вот такой ещё вариант есть.

Добавление
if ($n!==2 OR $n!==3 OR $n!==4)
ну да, конечно.
Условие истинно всегда, ведь с проверкой типа данных одно число не может одновременно равняться 2, 3 и 4. В условии - число НЕ является 2 ИЛИ число НЕ равняется 3 - т.е. истина на всей области значений.

if ($n===2 OR $n===3 OR $n===4) одно из значений
if ($n!==2 AND $n!==3 AND $n!==4) значение одновременно не является 2, 3, 4


-----
PostgreSQL DBA
 
 Top
avtor.fox
Отправлено: 28 Марта, 2013 - 13:05:02
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




Файл то, тю-тю.
 
 Top
Andrylik
Отправлено: 28 Марта, 2013 - 13:36:57
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Мелкий
я наверно чето не понял или уже запутался,
при отправке картинки gif $infoFoto1[2] =3 (проверил)

PHP:
скопировать код в буфер обмена
  1. if ($infoFoto1[2] !== 1 OR $infoFoto1[2] !== 2 OR $infoFoto1[2] !== 3){}
  2. else{}


тоесть я должен попасть в else, а насамом деле нет
 
 Top
armancho7777777 Супермодератор
Отправлено: 28 Марта, 2013 - 13:45:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)





Что выводит ?
 
 Top
Мелкий Супермодератор
Отправлено: 28 Марта, 2013 - 13:55:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Andrylik пишет:
тоесть я должен попасть в else

Не должны вы туда попасть, при любом содержимом переменной. Смотрите добавление к моему ответу, ваше условие для любого значения истинно.


-----
PostgreSQL DBA
 
 Top
Andrylik
Отправлено: 28 Марта, 2013 - 16:11:16
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Цитата:
В условии - число НЕ является 2 ИЛИ число НЕ равняется 3 - т.е. истина на всей области значений.


я думал что в условии - 3 НЕ равняется 2 ИЛИ 3 НЕ равняется 3...

и как проверить что 3 НЕ равняется 2 ИЛИ 3 НЕ равняется 3 ??

(Отредактировано автором: 28 Марта, 2013 - 16:19:26)

 
 Top
Мелкий Супермодератор
Отправлено: 28 Марта, 2013 - 16:19:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Andrylik пишет:
3 НЕ является 2 ИЛИ 3 НЕ равняется 3

3 !=2 ИЛИ 3!=3
true ИЛИ false
true

2 НЕ является 2 ИЛИ 2 НЕ равняется 3
2!=2 ИЛИ 2!=3
false ИЛИ true
true

42 НЕ является 2 ИЛИ 42 НЕ равняется 3
42 !=2 ИЛИ 42!=3
true ИЛИ true
true


-----
PostgreSQL DBA
 
 Top
Andrylik
Отправлено: 28 Марта, 2013 - 16:25:27
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




все , дошло , туплю на ровном месте... сорри
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB