Проверка на пустоту $_FILES.PHP

12 3
B
На сайте с 14.04.2012
Offline
35
4476

Правильна ли конструкция ?

elseif (empty($password) && empty($_FILES['file[]']))

и

elseif (empty($_FILES['filename']) && empty($_FILES['file[]']))
G
На сайте с 16.07.2012
Offline
2
#1

sizeof($_FILES)!=0

думаю это хорошая проверка

---------- Добавлено 08.08.2012 в 01:21 ----------

или это

if(filesize('путь') != 0)

B
На сайте с 07.12.2009
Offline
42
#2

Почему бы просто не сделать if (!$_FILES) {

G
На сайте с 16.07.2012
Offline
2
#3

!$_FILES отбрасывает если вообще не сработало. а могло сработтаь, но с ошибкой загрузки и тд, и это будет зафиксировано в массиве $_FILES и в такой случает массив н ебудет пустым и проверка не срабооает корректно.

лучше всего установить код и проверить))

большой разницы в скорость работы между обоими вариантам нету))

D1
На сайте с 07.10.2008
Offline
44
#4

bimbo, на оф-сайте все расписано

http://php.net/manual/ru/reserved.variables.files.php

if(sizeof($_FILES)!=0){
handleFiles();
}

или как писали выше

if( ! $_FILES )
if( ! sizeof( $_FILES ) )

а что у вас такое

bimbo:
$_FILES['file[]']

вообще не понятно, откуда это

Mik Foxi
На сайте с 02.03.2011
Offline
1217
#5

проверять размер, если больше нуля, то что-то есть )

Антибот, антиспам, веб фаервол, защита от накрутки поведенческих: https://antibot.cloud/ (8 лет на защите сайтов). Форум на замену серчу: https://foxi.biz/
B
На сайте с 14.04.2012
Offline
35
#6

У меня 2 поля на сайте в редактирвоании профиля с загрузками файлов.

<input type="file" name="filename"> и <input type="file" name="file[]" multiple="true" />

когда юзер редактирует,но ничего не загружает,надо чтобы не срабатывала команда на добавление в бд.Но что-то не робит sizeof

---------- Добавлено 08.08.2012 в 13:00 ----------

if (empty($password))
{
$query = "UPDATE clubs SET mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info', logo='$logo', gallery_dir='$gallery_dir' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}



elseif (sizeof($_FILES['filename'])!=0)

{
$query = "UPDATE clubs SET password='$password',mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info', gallery_dir='$gallery_dir' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}

elseif (sizeof($_FILES['file'])!=0)
{
$query = "UPDATE clubs SET password='$password',mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info', logo='$logo' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}


elseif (empty($password) and sizeof($_FILES['filename'])!=0)
{
$query = "UPDATE clubs SET mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info', gallery_dir='$gallery_dir' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}

elseif (empty($password) and sizeof($_FILES['file'])!=0)
{
$query = "UPDATE clubs SET mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info', logo='$logo' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}

elseif (sizeof($_FILES['filename'])!=0 and sizeof($_FILES['file'])!=0)
{
$query = "UPDATE clubs SET password='$password', mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}

else

{$query = "UPDATE clubs SET password='$password',mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info',logo='$logo', gallery_dir='$gallery_dir' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}



mysql_close($db);

Короче этот говнокод. Между {} идет определенныйпосыл запроса в бд. Но не работают толи проверки толи if конструкция не верна

---------- Добавлено 08.08.2012 в 13:20 ----------

там типа такого:

если введен пароль, но не загружены файлы --> запрос1

введен пароль, загружен 1 файл-->запрос 2

введен пароль, загружен второй фай--> запрос3

и вот такой перебор

S5
На сайте с 04.01.2010
Offline
77
#7
if (isset($_FILES['filename']['name']) && ($_FILES['filename']['name'] != '')){

}

десятьбукафбутылкапива

B
На сайте с 14.04.2012
Offline
35
#8

блеа=)Так ?

if (isset($password))
{
$query = "UPDATE clubs SET mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info', logo='$logo', gallery_dir='$gallery_dir' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}



elseif (isset($_FILES['filename']['name']) != '')

{
$query = "UPDATE clubs SET password='$password',mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info', gallery_dir='$gallery_dir' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}

elseif (isset($_FILES['file']['name']) != '')
{
$query = "UPDATE clubs SET password='$password',mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info', logo='$logo' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}


elseif (isset($password) && ($_FILES['filename']['name']) != '')
{
$query = "UPDATE clubs SET mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info', gallery_dir='$gallery_dir' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}

elseif (isset($password) && ($_FILES['file']['name']) != '')
{
$query = "UPDATE clubs SET mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info', logo='$logo' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}

elseif (isset($_FILES['filename']['name']) && ($_FILES['file']['name'] != ''))
{
$query = "UPDATE clubs SET password='$password', mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}

else

{$query = "UPDATE clubs SET password='$password',mail='$mail' ,name='$name' ,phone='$phone' ,adress='$adress' ,type_music='$type_music' ,indiv='$indiv' ,info='$info',logo='$logo', gallery_dir='$gallery_dir' WHERE id='$id_user' ";
$result = mysql_query($query)
or die ('Не могу занести данные в таблицу');}
D1
На сайте с 07.10.2008
Offline
44
#9

bimbo, у вас вообще полная хрень написана, бред какой-то, показывайте var_dump( $_FILES ) когда у вас:

введен пароль, загружен 1 файл-->запрос 2

введен пароль, загружен второй фай--> запрос3

и т.д...

пока нет никакого счетчика количества загруженных файлов
загрузите 1 файл, покажите var_dump( $_FILES )
загрузите 2 файла, покажите var_dump( $_FILES )

siv1987
На сайте с 02.04.2009
Offline
427
#10
bimbo:
если введен пароль, но не загружены файлы --> запрос1


введен пароль, загружен 1 файл-->запрос 2


введен пароль, загружен второй фай--> запрос3


и вот такой перебор

Там нихера не так, bimbo, вам реально логику бы подучить основательно. У вас один говнокод следует за другим, и никаких улучшений не видно. Пока что получаются только достойные примеры для сайта http://govnokod.ru/ Начните с простых примеров и тренируйтесь, постепенно усложняя конструкции. Честно слово, выучите хоть немного язык, нельзя же с такими знаниями кодить.

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий