Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2015, 08:30   #1
seric
Пользователь
 
Регистрация: 02.11.2015
Сообщений: 72
По умолчанию добавить три фото

Привет ребят не могу разобраться с кодом, может кто умеет работать с php подскажет что надо делать, я от этого очень далёк, по этому прошу помощи.
исходный код:
PHP код:
/// Добавляем ФОТО к объявлению!
if ($fotoadd==TRUE) { if (isset($_COOKIE['wrbcookies']) or $fotoaddany==TRUE) {

$allfotoname="";

$filename=$_FILES["file1"]['name']; // определяем имя ЗАГРУЖАЕМОГО файла

if (strlen($filename)>2) {


$fotoname=$_FILES["file1"]['name']; // определяем имя файла
$foto=$fotoname;


$fotosize=$_FILES["file1"]['size']; // Запоминаем размер файла

// проверяем расширение файла
$valid_types = array("gif","jpg","png","jpeg");  // допустимые расширения
$ext strtolower(substr($fotonamestrrpos($fotoname".")));
if (!
in_array($ext$valid_types)) {echo '<B>ФАЙЛ НЕ загружен.</B> Возможные причины:<BR>
- разрешена загрузка только файлов с такими расширениями: gif, jpg, jpeg, png<BR>
- Вы пытаетесь загрузить не графический файл;<BR>
- неверно введён адрес или выбран файл;</B><BR>'
; exit;}


//      ЗАЩИТЫ от ВЗЛОМА (ФОТО)

// 1. считаем кол-во точек в выражении - если большей одной - СВОБОДЕН!
$findtchka=substr_count($fotoname"."); if ($findtchka>1) {echo "ТОЧКА встречается в имени файла $findtchka раз(а). Это ЗАПРЕЩЕНО! <BR>\r\n";}

// 2. если в имени есть .php, .html, .htm - свободен! 
$bago="Извините. В имени ФАйла <B>запрещено</B> использовать .php, .html, .htm";
if (
preg_match("/\.php/i",$fotoname))  {echo "Вхождение <B>\".php\"</B> найдено. $bago"; exit;}
if (
preg_match("/\.html/i",$fotoname)) {echo "Вхождение <B>\".html\"</B> найдено. $bago"; exit;}
if (
preg_match("/\.htm/i",$fotoname))  {echo "Вхождение <B>\".htm\"</B> найдено. $bago"; exit;}

// 3. защищаем от РУССКИХ букв в имени файла и проверяем расширение файла 
if (!preg_match("/^[a-z0-9\.\-_]+\.(jpg|jpeg|gif|png|)+$/is",$fotoname)) {exit("Запрещено использовать РУССКИЕ буквы в имени файла!");}

// 4. Проверяем, может быть файл с таким именем уже есть на сервере
if (file_exists("$fotodir/$foto")) {exit("Файл с таким именем уже существует на сервере! Измините имя на другое!");}
// Конец защит по имени файла

$fotoksize=round($fotosize/10.24)/100// размер ЗАГРУЖАЕМОГО ФОТО в Кб.
$fotomax=round($max_file_size/10.24)/100// максимальный размер фото в Кб.
if ($fotoksize>$fotomax) {exit("Вы превысили допустимый размер фото! <BR><B>Максимально допустимый</B> размер фото: <B>$fotomax </B>Кб.<BR> <B>Вы пытаетесь</B> загрузить изображение: <B>$fotoksize</B> Кб!");}

if   (
$fotosize>"0" and $fotosize<$max_file_size) {
     
copy($_FILES["file1"]['tmp_name'], "$fotodir/$fotoname");
     print 
"<br><br>Фото УСПЕШНО загружено: $fotoname (Размер: $fotosize байт)";}
else {exit(
"<B>Файл НЕ ЗАГРУЖЕН - ошибка СЕРВЕРА! Обратитесь к администратору!<B>");}

// Проверяем размер фото. Если "габариты" меньше 100 х 100 - то ничего с ним не делаем
$size getimagesize("$fotodir/$foto");

// блок делает мальное изображение исходной фотки - в качестве превьюшки
$smallfoto="$foto";
if (
$size[0]>100 or $size[1]>100) { $smallfoto="sm-$foto";
if (
img_resize("$fotodir/$foto""$fotodir/$smallfoto"150120))  echo 'Изображение масштабировано успешно'; else  echo 'Масштабирование невозможно - ошибка на хостинге!';
}
} else 
$smallfoto="";
$allfotoname.="$filename|";

/// Конец блока добавления ФОТО

if ($fotoadd==TRUE) { if (isset($_COOKIE['wrbcookies']) or $fotoaddany==TRUE) {
$maxfile=round($max_file_size/10.24)/100;
print
"<TR class=row1><TD>Прикрепить фото:<BR>(допустимые типы: gif, jpg, png,<BR> размер менее $maxfile Кб.)</TD><TD>
<FONT color=#ff0000>*</FONT><input type=file size=50 class=maxiinput name=file1>

</TD></TR>"
; } } 
___
не забывайте форматировать тегами исходный код.
Модератор

Последний раз редактировалось Serge_Bliznykov; 02.11.2015 в 10:50.
seric вне форума Ответить с цитированием
Старый 02.11.2015, 09:34   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

и в чем проблема? конкретно
ADSoft вне форума Ответить с цитированием
Старый 02.11.2015, 10:01   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Давненько я такого дерьмищща не видел...
Код:
$filename=$_FILES["file1"]['name']; // определяем имя ЗАГРУЖАЕМОГО файла
if (strlen($filename)>2) {
$fotoname=$_FILES["file1"]['name']; // определяем имя файла
$foto=$fotoname;
Нафига 3 переменных с именем?
Код:
if (strlen($filename)>2) {
Казалось бы, почему нельзя имя файла короче 3 символов? Но дальше круче...
Код:
// проверяем расширение файла
$valid_types = array("gif","jpg","png","jpeg"); // допустимые расширения
$ext = strtolower(substr($fotoname, 1 + strrpos($fotoname, ".")));
Потому что тип файла мы определяем по названию! mime-types для лохов.

Код:
// 1. считаем кол-во точек в выражении - если большей одной - СВОБОДЕН!
Защита от взлома... Че же на слеши не проверить в имени?
Код:
// 2. если в имени есть .php, .html, .htm - свободен!
Выше же отфутболили уже неверные расширения файлов, не?
Код:
// 3. защищаем от РУССКИХ букв в имени файла и проверяем расширение файла
if (!preg_match("/^[a-z0-9\.\-_]+\.(jpg|jpeg|gif|png|)+$/is",$fotoname)) {exit("Запрещено использовать РУССКИЕ буквы в имени файла!");}
Защита от бухгалтеров. Юзер-френдли во всей красе.
Код:
// 4. Проверяем, может быть файл с таким именем уже есть на сервере
Это ваще убило)) Перебирай, [censored], имена, пока мне не понравится!)))
Код:
$fotoksize=round($fotosize/10.24)/100; // размер ЗАГРУЖАЕМОГО ФОТО в Кб.
$fotomax=round($max_file_size/10.24)/100; // максимальный размер фото в Кб.
if ($fotoksize>$fotomax)
Сравниваем два округленных значения.
Код:
if ($fotosize>"0" and $fotosize<$max_file_size) {
Еще раз проверим размер файла. Непрошибаемая защита.
Код:
if ($size[0]>100 or $size[1]>100) { $smallfoto="sm-$foto";
if (img_resize("$fotodir/$foto", "$fotodir/$smallfoto", 150, 120))
Сравниваем 100/100, а ресайзим в 150/120...

Цитата:
и в чем проблема? конкретно
Никакой конкретики, только ХАРДКОР!
Alar, верни репу!

Последний раз редактировалось Serge_Bliznykov; 02.11.2015 в 10:51.
Naive вне форума Ответить с цитированием
Старый 02.11.2015, 10:22   #4
seric
Пользователь
 
Регистрация: 02.11.2015
Сообщений: 72
По умолчанию

прикрепляется одно фото, а надо что бы три фотки было.

Последний раз редактировалось seric; 02.11.2015 в 10:47.
seric вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Админ панель, как добавить фото polepropilen Свободное общение 0 21.07.2010 13:11
как создать матрицу три на три в мемо (делфи) Lordigan Помощь студентам 0 15.03.2010 18:37
черный ящик, на три входа и на три выхода Shanson Помощь студентам 7 30.01.2008 09:45