|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.04.2014, 09:30 | #1 |
Форумчанин
Регистрация: 24.02.2014
Сообщений: 144
|
Форма подачи объявлений с фото не работает.
Здравствуйте, помогите у кого есть время и знание. Форма подачи объявлений не прикрепляет фото, в отдельности работают хорошо. Думаю что ошибка в этой части - $foto=""; $fotoksize=""; $size[0]=""; $size[1]="";
/// Добавляем ФОТО к объявлению! 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($fotoname, 1 + strrpos($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", 150, 120)) echo 'Изображение масштабировано успешно'; else echo 'Масштабирование невозможно - ошибка на хостинге!'; } } else $smallfoto=""; $allfotoname.="$filename|"; /// Конец блока добавления ФОТО <!DOCTYPE html PUBLIC > <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Загрузка изображений</title> <script> function xdropFile(btn) { if(document.getElementById) { tr = btn; while (tr.tagName != 'TR') tr = tr.parentNode; tr.parentNode.removeChild(tr); checkForLast(); } } function xaddFile(btn) { if(document.getElementById) { tr = btn; while (tr.tagName != 'TR') tr = tr.parentNode; var idSuffix = Math.round(Math.random()*1000); var newTr = tr.parentNode.insertBefore(tr.clone Node(true),tr.n extSibling); thisChilds = newTr.getElementsByTagName('td'); for (var i = 0; i < thisChilds.length; i++) { if (thisChilds[i].className == 'header') thisChilds[i].innerHTML = ''; if (thisChilds[i].className == 'files') thisChilds[i].innerHTML = '<input size="32" name="xtt[]" class="wideFile" type="file">'; } checkForLast(); } } function checkForLast() { btns = document.getElementsByName('xdrop') ; for (i = 0; i < btns.length; i++) { btns[i].disabled = (btns.length == 1) ? true : false; } } </script> </head> <body> <form action="obrabotka.php" method="post" name="form" ENCTYPE="multipart/form-data" align="center"> <table width=20% align=center> <tr> <td width="20%"><input type="file" size="32" name="xtt[]"></td> <td nowrap="nowrap"> <input type="button" name="xdrop" value=" −" onClick="xdropFile(this);"> <input type="button" value=" + " onClick="xaddFile(this);"> </td> </tr> </table> <input name="" type="submit"> </form> </body> </html> |
07.04.2014, 09:31 | #2 |
Форумчанин
Регистрация: 24.02.2014
Сообщений: 144
|
ДА, еще есть обработка, но к ней притензий не должно быть, поскольку если вытащить код отдельно, фото загружает и пять и десять. Подскажите ножалуйста.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Требуется разработка программы для автоматической подачи объявлений на сайты. | fine09 | Фриланс | 4 | 25.10.2013 16:02 |
Нужна пр-ма для скачивания базы объявлений с сайтов-досок объявлений | fine09 | Фриланс | 1 | 17.09.2011 22:19 |
форма с выпадающими списками и фото | 7vlad37 | Microsoft Office Excel | 2 | 01.04.2011 22:47 |
Требуется разработка программы для автоматической подачи объявлений на сайты. | fine09 | Фриланс | 1 | 11.11.2009 09:12 |