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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
foozzi
Отправлено: 09 Ноября, 2011 - 16:27:23
Post Id



Посетитель


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


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




при попытке загрузить файл вылазит ошибка
Parse error: syntax error, unexpected T_ELSE in ......../lib/lib.upload.php on line 40
сам код:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. ini_set('display_errors',1);
  3.    
  4. function upload_file($max_size=3145728) {
  5.         $upload_path = dirname (__FILE__).$upload_dir;
  6.         $upload_filename = basename($_FILES["filename"]["name"]);
  7.         $upload_dir = '/uploads/';
  8.         $upload_link = "http://".$_SERVER ["HTTP_HOST"].dirname ($_SERVER ["PHP_SELF"]).$upload_dir.$upload_filename;
  9.         if ($_FILES)
  10.         {
  11.                 switch ($_FILES['filename']['type'])
  12.                 {
  13.                         case 'image/jpeg':      $ext='jpg'; break;
  14.                         case 'image/pjpeg':     $ext='jpg'; break;
  15.                         case 'image/png':       $ext='png'; break;
  16.                         case 'application/pdf': $ext='pdf'; break;
  17.                         case 'application/x-bzip2':     $ext='bz2'; break;
  18.                         case 'application/x-gzip':      $ext='gz'; break;
  19.                         case 'application/x-tar':       $ext='tar gz'; break;
  20.                         case 'application/x-troff-man': $ext='man'; break;
  21.                         case 'application/zip': $ext='zip'; break;
  22.          case 'audio/mpeg':     $ext='mp3'; break;
  23.                
  24.                         default:                        $ext='';
  25.                 }      
  26.                 if ($ext == true && $_FILES['filename']['size'] < $max_size)
  27.                 {
  28.                         /*$file=time().'.'.$ext;*/
  29.                         $m=move_uploaded_file ($_FILES['filename']['tmp_name'], /*TE_DIR.'/upload/'*/$upload_dir.$upload_filename);
  30.                         if ($m) $mes='Файл загружен.'; {
  31.           echo "Линки:<br>";
  32.      echo "<input type='text' size=80 onclick='this.select()' value='".$upload_link."'><br><br>";
  33.      echo "HTML Линк:<br>";
  34.      echo "<input type='text' size=80 onclick='this.select()' value=\"<a href='".$upload_link."'>".$upload_link."</a>\"><br><br>";
  35.      echo "BB-Code Линк:<br>";
  36.      echo "<input type='text' size=80 onclick='this.select()' value='[url]".$upload_link."[/url]'><br><br>";
  37.      echo "<a href='?".md5(microtime())."'>Загрузить другой файл</a>"; }
  38.      
  39.                         else $mes='Ошибка. Возможно не хватает прав доступа.';
  40.                 }
  41.                 else $mes='Ошибка. Тип файла не поддерживается или его размер больше допустимого.';
  42.         }
  43.         return $mes;
  44. }
  45. ?>


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
EuGen Администратор
Отправлено: 09 Ноября, 2011 - 16:31:28
Post Id


Профессионал


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


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




http://phpfaq[dot]ru/debug
foozzi пишет:
if ($m) $mes='Файл загружен.'; {

- подозреваю, что нужно открывающую скобку ставить здесь (сразу после if($m) а не после оператора). Иначе Ваш if распространяется только на первый оператор, а затем идет непонятный блок { ... }, за которым следует else (и по этой причине он, естественно, никак не относится к этому if)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
foozzi
Отправлено: 09 Ноября, 2011 - 17:07:53
Post Id



Посетитель


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


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




поставил, теперь пустая страница и ничего не выводится,файлы так же не грузятся, поставил вывод ошибок

сразу после


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
snikers987
Отправлено: 09 Ноября, 2011 - 17:22:33
Post Id



Участник


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


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




после else в 40 строке поставь {


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
foozzi
Отправлено: 09 Ноября, 2011 - 17:26:32
Post Id



Посетитель


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


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




snikers987 пишет:
после else в 40 строке поставь {

Parse error: syntax error, unexpected T_ELSE in /.........../lib/lib.upload.php on line 44
там же попробовал поставить то же { та же ошибка


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
foozzi
Отправлено: 10 Ноября, 2011 - 20:24:03
Post Id



Посетитель


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


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




никто не может помочь?
(Добавление)
даже уже вот так сделал, индикатор загрузки файла в браузере идет до 100% ( тоесть файл загружается) после чего белая страница, ошибок нет

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         ini_set('display_errors',1);
  3.       error_reporting(E_ALL);
  4.          $upload_path = dirname (__FILE__).$upload_dir;
  5.          $upload_filename = basename($_FILES["filename"]["name"]);
  6.          $upload_dir = '/uploads';
  7.          $upload_link = "http://".$_SERVER ["HTTP_HOST"].dirname ($_SERVER ["PHP_SELF"]).$upload_dir.$upload_filename;
  8.    
  9. function upload_file($max_size=3145728) {
  10.         global $upload_path, $upload_filename, $upload_dir, $upload_link;
  11.  
  12.         if ($_FILES)
  13.         {
  14.                 switch ($_FILES['filename']['type'])
  15.                 {
  16.                         case 'image/jpeg':      $ext='jpg'; break;
  17.                         case 'image/pjpeg':     $ext='jpg'; break;
  18.                         case 'image/png':       $ext='png'; break;
  19.                         case 'application/pdf': $ext='pdf'; break;
  20.                         case 'application/x-bzip2':     $ext='bz2'; break;
  21.                         case 'application/x-gzip':      $ext='gz'; break;
  22.                         case 'application/x-tar':       $ext='tar gz'; break;
  23.                         case 'application/x-troff-man': $ext='man'; break;
  24.                         case 'application/zip': $ext='zip'; break;
  25.          case 'audio/mpeg':     $ext='mp3'; break;
  26.                
  27.                         default:                        $ext='';
  28.                 }      
  29.                 if ($ext == true && $_FILES['filename']['size'] <= $max_size)
  30.                 {
  31.                         /*$file=time().'.'.$ext;*/
  32.           $m=move_uploaded_file($_FILES['filename']['tmp_name'], /*TE_DIR.'/upload/'*/$upload_dir.$upload_filename);
  33.                        
  34.                         if ($m){
  35.           ini_set('display_errors',1);
  36.      error_reporting(E_ALL);
  37.           $mes='Файл загружен.';
  38.           echo "Линки:<br>";
  39.      echo "<input type='text' size=80 onclick='this.select()' value='".$upload_link."'><br><br>";
  40.      echo "HTML Линк:<br>";
  41.      echo "<input type='text' size=80 onclick='this.select()' value=\"<a href='".$upload_link."'>".$upload_link."</a>\"><br><br>";
  42.      echo "BB-Code Линк:<br>";
  43.      echo "<input type='text' size=80 onclick='this.select()' value='[url]".$upload_link."[/url]'><br><br>";
  44.      echo "<a href='?".md5(microtime())."'>Загрузить другой файл</a>"; }
  45.      
  46.      elseif(!$m) {
  47.  
  48.         print_r($_FILES["filename"]["error"] );
  49.                         $mes='Ошибка. Возможно не хватает прав доступа.';
  50.           }
  51.                 else {
  52.                 print_r($_FILES["filename"]["error"] );
  53.                 $mes='Ошибка. Тип файла не поддерживается или его размер больше допустимого.';
  54.          }
  55.         return $mes;
  56.    }
  57.   }
  58.  }
  59. ?>

(Отредактировано автором: 10 Ноября, 2011 - 23:13:57)



-----
90% ошибок находятся в полуметре от монитора...
 
 Top
Bio man
Отправлено: 11 Ноября, 2011 - 00:03:03
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




совет аффтару, используй редактор, где видно где что открыто, не закрыто, на подобие adobe dreamvewer 5cs, zend studio. И не возникнет больше таких синтаксических ошибок
 
 Top
foozzi
Отправлено: 11 Ноября, 2011 - 00:51:37
Post Id



Посетитель


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


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




редактор у меня видит где что открыто и закрыто, так вот там все нормально и все закрыто, можно по теме а не офтопить?


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
Panoptik
Отправлено: 11 Ноября, 2011 - 01:10:56
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




у каждого свои методы дебага. можно попробовать вставить обыкновенные выводы меток в разных частях кода например echo 1; echo 2; и т.д.

еще попробуйте закоментировать определенные куски кода вплоть до комментирования всего , а потом начинайте частично раскоментировть и смотрите где возникает ошибка

кстати у вас функция возвращает ретурн в условии, а без условия ретурн нету. а значит если это условие не выполнено я имею ввиду строку

if ($ext == true && $_FILES['filename']['size'] <= $max_size) { // у меня она 37

то функция ничего не вернет, а значит вы ничего и не увидите попробуйте перенести ретурн после всех ифов

(Отредактировано автором: 11 Ноября, 2011 - 01:15:46)



-----
Just do it
 
 Top
foozzi
Отправлено: 11 Ноября, 2011 - 01:48:06
Post Id



Посетитель


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


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




Panoptik сделал, эффект тот же


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
Panoptik
Отправлено: 11 Ноября, 2011 - 09:03:37
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




если ошибок нет, может проблема в каком другом файле?


-----
Just do it
 
 Top
foozzi
Отправлено: 11 Ноября, 2011 - 16:38:16
Post Id



Посетитель


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


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




есть форма и есть библеотека эта, вот сама форма:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  4.                 <link rel="stylesheet" type="text/css" media="all" href="style.css">
  5.         </head>
  6.         <body>
  7.                 <table width="100%" height="100%"><tr valign="center"><td align="center" nowrap><div id="upload">
  8.  
  9.  
  10. <?php
  11.  
  12. echo 'Выберите файл | Максимальный размер 10 MB | Запрещенно заливать исполняемые файлы<br><br>';
  13.                                 echo '<form enctype="multipart/form-data" action="lib/lib.upload.php" method="post">';
  14.                            echo '<input type="file" name="filename" size="45">';
  15.                                 echo '<input type="submit" value=" Грузить! " name="upload">';
  16.                                 echo '</form>';
  17.  
  18.  
  19.  
  20. ?>
  21.  
  22.  
  23.  
  24. </body>
  25. </html>
  26.  


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
Bio man
Отправлено: 11 Ноября, 2011 - 17:00:38
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




foozzi пишет:
Parse error: syntax error, unexpected T_ELSE in /.........../lib/lib.upload.php on line 44
там же попробовал поставить то же { та же ошибка
foozzi пишет:
редактор у меня видит где что открыто и закрыто, так вот там все нормально и все закрыто

видимо не умеешь пользоватся или просто не понемаешь где что ставить.
установи Adobe Dreamweaver CS5.5, он красным подмечивает синтаксичиские ошибки. это не оффтоп, это совет новечка новечку. мне кажется не правильно блоки расставил раз ошибок нет и не чего не возвращается, а может и возвращается но ты это просто не выводишь на экран. echo upload_file($max_size);

(Отредактировано автором: 11 Ноября, 2011 - 17:01:36)

 
 Top
foozzi
Отправлено: 11 Ноября, 2011 - 17:51:06
Post Id



Посетитель


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


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




Bio man я использую linux debian и не использую поприетарное ПО, у меня есть замечательный редактор BlueFish который так же само видит закрытые и не закрытые функции, я не могу поверить что нет решения к проблемме, сори я там кинул не тот код там где небыло закрытия if у меня то он стоит.... все перепробовал =(


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
snikers987
Отправлено: 11 Ноября, 2011 - 17:58:20
Post Id



Участник


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


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




А где функция вызывается то?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB