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 :: загрузка фаилов на сервере, проверка тип фаила

 PHP.SU

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


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

> Описание: javascript vs php
dadli
Отправлено: 26 Февраля, 2012 - 12:05:22
Post Id



Посетитель


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


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




Приветствую

есть форма для загрузки картинки
задача: надо дапустить толко .gif картинки.

как правило, проверка происходит на сервере да? через функции getimagesize() или $_FILES['uploadfile']['type']
возникла такои вопрос: чем будит плохо, сделать ето с помошчю яваскрипт?
то есть берём значение input type file, обреазеам из него часть, после последного символа "." (точка), так получаем тип картинки да? проверяем и если тип не gif, то алерт("картинка вне гиф формате"). иначе загружаем фаил?
какои будит ваш совет/мнение геспада?

P.S. такои варянт: "браузер не подерживает/выключен яваскрипт", допустим нет проблема.

(Отредактировано автором: 26 Февраля, 2012 - 12:05:51)

 
 Top
imper
Отправлено: 26 Февраля, 2012 - 12:13:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Февр. 2012  
Откуда: Тольятти


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

[+]


зачем тебе js ?
на php не очень большой код будет
<?php
if ($_FILES)
{
$name=$_FILES['filename']['name'];
switch ($_FILES['filename']['type'])
{
case 'image/gif' : $ext='gif'; break; //вот только гиф тебе хочешь ещё что нидь добавить просто пропишешь к примеру case 'image/jpg' : $ext='jpg'; break;
default: $ext=''; break;
}
if($ext)
{
$n="image.$ext";
move_uploaded_file($_FILES['filename']['tmp_name'],$n);
echo "загружено изображение '$name' под именем '$n':<br />";
}
else echo "'$name' неприемлемый файл изображения";
}
else echo "загрузки файла непроизошло";
?>


-----
Самое лучшее решение проблемы
самое простое
 
 Top
dadli
Отправлено: 26 Февраля, 2012 - 12:19:51
Post Id



Посетитель


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


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




imper
спасибо болшое за код, Улыбка но дело втом:
Цитата:
зачем тебе js ?

потому что если варянт через js "не плохо", то етот варянт будит гораздо бистрее чем варянт через пхп.
 
 Top
imper
Отправлено: 26 Февраля, 2012 - 12:23:40
Post Id



Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Февр. 2012  
Откуда: Тольятти


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

[+]


dadli пишет:
imper
спасибо болшое за код, Улыбка но дело втом:
Цитата:
зачем тебе js ?

потому что если варянт через js "не плохо", то етот варянт будит гораздо бистрее чем варянт через пхп.


ну я в js не силён попробуй на форуме http://javascript[dot]ru/forum/ =-)


-----
Самое лучшее решение проблемы
самое простое
 
 Top
dadli
Отправлено: 26 Февраля, 2012 - 12:27:41
Post Id



Посетитель


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


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




хорошо, и там буду спрашивать и здес буду ждать других ответов Улыбка
спасибо вам imper
 
 Top
DelphinPRO
Отправлено: 26 Февраля, 2012 - 12:59:53
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




dadli пишет:
чем будит плохо, сделать ето с помошчю яваскрипт?

Тем что javascript доступен пользователю. Я, имея злой умысел, запросто могу подкорректировать вашу функцию проверки на javascript'e и отправить любой файл.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
dadli
Отправлено: 26 Февраля, 2012 - 13:08:13
Post Id



Посетитель


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


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




DelphinPRO
можете сказать как можно подкорректировать функции от старани ползователя? или дать ссилку где об етом написано?
 
 Top
DelphinPRO
Отправлено: 26 Февраля, 2012 - 13:21:50
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




в firebug в лисе или dragonfly в опере легко позволяют модифицировать любой клиентский код
(Добавление)
вот http://habrahabr[dot]ru/blogs/php/44610/ почитайте про безопасность загрузки файлов.

А на Javascript проверки делать нужно, но только для того, чтобы сообщить пользователю об ошибке, не перезагружая страницу. js-валидация не должна исключать проверки всех приходящих данных от пользователя на сервере.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
tuareg
Отправлено: 26 Февраля, 2012 - 13:26:18
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Просто необходимо понимать, что только одна проверка Js не спасет(его можно тупо отключить.)
А так
находите значение value полю type='file'.
Выбираете 4 последние символа(как раз и будет расширение файла) и смотрите если все нормально то грузите файл а там снова проверяете его, если нет то сразу ошибка
 
 Top
dadli
Отправлено: 26 Февраля, 2012 - 13:46:40
Post Id



Посетитель


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


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




DelphinPRO
tuareg
спасибо болшое, и последни випрос:
js код, подключаемой через <script src="bla_bla_bla"></script> тоже может изменить юзер?
 
 Top
tuareg
Отправлено: 26 Февраля, 2012 - 13:56:06
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




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

(Отредактировано автором: 26 Февраля, 2012 - 13:59:15)

 
 Top
illy
Отправлено: 26 Февраля, 2012 - 14:03:22
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


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




dadli пишет:
js код, подключаемой через <script src="bla_bla_bla"></script> тоже может изменить юзер?

да Хорошо


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
DelphinPRO
Отправлено: 26 Февраля, 2012 - 14:19:48
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




можно модифицировать все, что отдается клиенту. Приходящим от пользователя данным нельзя доверять априори.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
dadli
Отправлено: 26 Февраля, 2012 - 14:22:19
Post Id



Посетитель


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


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




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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB