Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 22.05.2015
Сообщений: 31

Выполняется и if и else

22.10.2015, 03:53. Показов 1493. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть форма загрузки сразу нескольких изображений. Метод передачи формы POST. Всем инпутам дан name="file[]" что превращает их в массив.
Все успешно загружается и все работает, НО...
когда делаю проверку на расширение файла:
Code
1
2
3
4
5
6
if(($_FILES['file']['type'][$k] == "image/gif") || ($_FILES['file']['type'][$k] == "image/png") ||
    ($_FILES['file']['type'][$k] == "image/jpg") || ($_FILES['file']['type'][$k] == "image/jpeg")) {
Различные операции;
} else {
сообщение об ошибке
}
Выполняется и if и else одновременно! Не понимаю как так. У меня стоит || в условии, а значит, если хоть одно из условий верно, вернется true и выполнится первоначальный код в скобках после условия. Если же ни один вариант в условии не подходит, должно вернуться false и выполниться else, где мое сообщение об ошибке.
Но каким то образом выполняется код и if и else.

Подскажите, в чем проблема?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.10.2015, 03:53
Ответы с готовыми решениями:

Код не выполняется в одном месте, но выполняется в другом
Вот код процедуры: LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; ...

не выполняется запрос в коде, но выполняется в phpliteadmin
всем привет! необходима небольшая помощь, есть бд с таблицей "keys" и одной из колонок в ней - "key". также есть запрос: SELECT...

Нужно передать файл, расположенный на рабочей станции, на которой выполняется сервер, на рабочую станцию​​, на которой выполняется клиент. MailSlot
Ребята. Нужна помощь. Нужно передать файл, расположенный на рабочей станции, на которой выполняется сервер, на рабочую...

11
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
22.10.2015, 11:50
Цитата Сообщение от googlonator Посмотреть сообщение
Выполняется и if и else одновременно!
Такого быть не может.
0
1 / 1 / 0
Регистрация: 22.05.2015
Сообщений: 31
22.10.2015, 15:09  [ТС]
Вот и я не понимаю как так! Но мне выводит сообщение и об ошибке и о успешном выполнение, картинка грузится и при этом мне на мыло отправляется сообщение(выполнение else), что пытались загрузить не изображение.

Вот и я не могу понять...

Всю голову уже сломал. Это выходит за рамки возможного вообще. Может кто знает в чем проблема?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,913
22.10.2015, 15:19
googlonator, экстрасенсы в отпуске, так что без полного кода помочь вам нечем, кроме констатации факта:
Цитата Сообщение от pav1uxa Посмотреть сообщение
Такого быть не может.
И внутри if необязательно плодить горы кода, проще сделать так:
PHP
1
2
3
4
if(in_array($_FILES['file']['type'][$k], array('image/gif', 'image/png', 'image/jpg', 'image/jpeg')))
{
   // Код
}
Добавлено через 3 минуты
Кстати, что за [$k]? Тип лежит в $_FILES['file']['type'].
0
 Аватар для UchihaSV
286 / 235 / 113
Регистрация: 08.06.2013
Сообщений: 725
22.10.2015, 15:45
Цитата Сообщение от Jodah Посмотреть сообщение
Кстати, что за [$k]? Тип лежит в $_FILES['file']['type'].
Ну как бы, тут множественная загрузка
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,913
22.10.2015, 16:09
Цитата Сообщение от UchihaSV Посмотреть сообщение
Ну как бы, тут множественная загрузка
И правда. Не знал, что она так выглядит.
0
1 / 1 / 0
Регистрация: 22.05.2015
Сообщений: 31
22.10.2015, 18:20  [ТС]
Сейчас попробую ваш вариант.
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,913
22.10.2015, 20:17
googlonator, какой? Я пока что только намекнул, что надо выложить полный код.
0
25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
23.10.2015, 16:43
Есть вероятность, что код выполняется дважды.
0
1 / 1 / 0
Регистрация: 22.05.2015
Сообщений: 31
25.10.2015, 00:26  [ТС]
Как такое может быть? В следствии чего? В конце файла стоит exit();
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,913
25.10.2015, 01:46
Прошло 3 дня, кода нет... видимо, помощь вам не нужна.
0
1 / 1 / 0
Регистрация: 22.05.2015
Сообщений: 31
25.10.2015, 02:06  [ТС]
Кстати, может это из-за редиректа?
В конце выполняемого скрипта у меня стоит:
Code
1
2
3
$redirect = 'http://mySite.com/page1';
header("Location: $redirect");
exit();
Нужно мне это, что бы у меня не открывалась пустая страница скрипта, а меня кидало обратно на сайт. В самом скрипте у меня все нужные сообщения записываются в сессию и потом выводятся на стр.

Добавлено через 1 минуту
Код я скину уже в крайнем случае. Пока думаю, что это из-за редиректа, не выполняется exit(); и код выполняется дважды, как сказал товарищ выше.

Добавлено через 14 минут
Все, я понял в чем проблема.
У меня идет пролистывание массива по одному изображению, т.е.
Скрипт отобрал изображение, проделал с ним все операции и код повторяется, и все операции проделываются заново, а так как я тестировал форму пытаясь загрузить только 1 изображение, он и выдавал по первому прохождению кода(загрузке изображение) успешное выполнение, а по второму прохождению ошибку, т.к. файл не был выбран.

Спасибо всем за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.10.2015, 02:06
Помогаю со студенческими работами здесь

Вывести на экран "условие выполняется", если все элементы массива положительные и "условие не выполняется", если это не так.
1)Тип массива вещественный.Число элементов 11. Вывести на экран "условие выполняется", если все элементы массива положительные и...

Не выполняется if
Почему может не выполняться оператор if? Ни одна ветка не исполняется, ни истинная, ни ложная. Сразу на return переходит. Среда CSS6.0.1....

не выполняется js
Всем привет,Пытаюсь поставить "мне нравится" вконтакте под фото Код: <div id="pv_like_wrap" class="fl_l"...

Не выполняется сортировка
Вот часть моей программы #include <iostream> #include <conio.h> #include <fstream> #include <vector> #include <iomanip> ...

Запрос не выполняется
На сайте должна происходить сортировка, но она не происходит и нет ошибок! $query5 = mysql_query("SELECT * FROM `question` ORDER BY...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru