Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не добавляестся в директорию, загруженный на сервер файл
 
 автор: сотка   (11.12.2011 в 16:58)   письмо автору
 
 

 error_reporting(E_ALL & ~E_NOTICE);

  // Устанавливаем соединение с базой данных
  require_once("../../config/config.php");
  // Подключаем блок авторизации
  require_once("../utils/security_mod.php");
  // Подключаем классы формы
  require_once("../../config/class.config.dmn.php");
 

  // Защита от SQL-инъекции
  $_GET['id_catalog']   = intval($_GET['id_catalog']);

  if(empty($_POST)) $_REQUEST['hide'] = true;
  try
  {
    $name = new field_text("name",
                           "Название",
                           false,
                           $_POST['name']);
    $big   = new field_file("big",
                            "файл-mp3",
                             false,
                             $_FILES,
                            "../../files/mp3/");
    $hide = new field_checkbox("hide",
                               "Отображать",
                               $_REQUEST['hide']);
    $id_catalog = new field_hidden_int("id_catalog",
                                 true,
                                 $_REQUEST['id_catalog']);
    $page = new field_hidden_int("page",
                                 false,
                                 $_REQUEST['page']);
    $form = new form(array("name"       => $name,
                           "big"        => $big,
                           "hide"       => $hide, 
                           "id_catalog" => $id_catalog,
                           "page"       => $page), 
                     "Добавить",
                     "field");
  
    // Обработчик HTML-формы
    if(!empty($_POST))
    {
      // Проверяем корректность заполнения HTML-формы
      // и обрабатываем текстовые поля
      $error = $form->check();
      if(empty($error))
      {
        // Извлекаем текущую максимальную позицию
        $query = "SELECT MAX(pos) FROM $tbl_mp3_position
                  WHERE id_catalog={$form->fields['id_catalog']->value}";
        $pos = mysql_query($query);
        if(!$pos)
        {
          throw new ExceptionMySQL(mysql_error(), 
                                   $query,
                                  "Ошибка при извлечении 
                                   текущей позиции");
        }
        $pos = mysql_result($pos, 0) + 1;
        // Скрытый или открытая позиция
        if($form->fields['hide']->value) $showhide = "show";
        else $showhide = "hide";
        // Изображения
        $var = $form->fields['big']->get_filename();
        if(!empty($var))
        {
          $big = "files/mp3/".$var;
        }
        
        // Формируем SQL-запрос на добавление позиции
        $query = "INSERT INTO $tbl_mp3_position
                  VALUES (NULL,
                          '{$form->fields[name]->value}',
                          '$big',
                          '$showhide',
                           $pos,
                          {$form->fields[id_catalog]->value})";
        if(!mysql_query($query))
        {
          throw new ExceptionMySQL(mysql_error(), 
                                   $query,
                                  "Ошибка при добавлении 
                                   позиции");
        }
        // Осуществляем редирект на главную страницу
        header("Location: mp3.php?".
               "id_catalog={$form->fields[id_catalog]->value}&".
               "page={$form->fields[page]->value}");
        exit();
      }
    }
    // Начало страницы
    $title     = 'Добавление mp3-файла';
    $pageinfo  = '<p class=help></p>';
    // Включаем заголовок страницы
    require_once("../utils/top.php");
    
    echo "<p><a href=# onClick='history.back()'>Назад</a></p>";
    // Выводим сообщения об ошибках если они имеются
    if(!empty($error))
    {
      foreach($error as $err)
      {
        echo "<span style=\"color:red\">$err</span><br>";
      }
    }
    // Выводим HTML-форму 
    $form->print_form();
  }
  catch(ExceptionObject $exc) 
  {
    require("../utils/exception_object.php"); 
  }
  catch(ExceptionMySQL $exc)
  {
    require("../utils/exception_mysql.php"); 
  }
  catch(ExceptionMember $exc)
  {
    require("../utils/exception_member.php"); 
  }

  // Включаем завершение страницы
  require_once("../utils/bottom.php");

Всем привет
Подскажите где ошибка?

  Ответить  
 
 автор: сотка   (11.12.2011 в 17:00)   письмо автору
 
   для: сотка   (11.12.2011 в 16:58)
 

CREATE TABLE system_mp3_position (
  id_position int(11) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  big tinytext NOT NULL,
  hide enum('show','hide') NOT NULL default 'show',
  pos int(11) NOT NULL default '0',
  id_catalog int(11) NOT NULL default '0',
  PRIMARY KEY  (id_position)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;

  Ответить  
 
 автор: cheops   (11.12.2011 в 17:18)   письмо автору
 
   для: сотка   (11.12.2011 в 16:58)
 

Файл во временной директории появляется (т.е.на сервер он попадает)?

  Ответить  
 
 автор: сотка   (11.12.2011 в 17:31)   письмо автору
 
   для: cheops   (11.12.2011 в 17:18)
 

как это посмотреть???вроде он же удаляется сразу же из временной директории...в дампе таблицы он добавляется,т.е указывается путь к файлу(которого нет в указанной директории)

  Ответить  
 
 автор: сотка   (11.12.2011 в 17:35)   письмо автору
 
   для: сотка   (11.12.2011 в 17:31)
 

вообщем заполняю форму нажимаю добавить,редикт на главную-БД заполняется! проверяю директорию ../../files/mp3/ файлов нет в ней(

  Ответить  
 
 автор: cheops   (11.12.2011 в 17:56)   письмо автору
 
   для: сотка   (11.12.2011 в 17:35)
 

Права доступа на ../../files/mp3/ выставлены?

  Ответить  
 
 автор: cheops   (11.12.2011 в 17:55)   письмо автору
 
   для: сотка   (11.12.2011 в 17:31)
 

Через массив $_FILES, удаление можно закомментировать, впрочем последнее не обязательно - достаточно просто посмотреть назначено ли имя для временного файла - если назначено, значит он попал не сервер.

  Ответить  
 
 автор: сотка   (11.12.2011 в 18:00)   письмо автору
 
   для: cheops   (11.12.2011 в 17:55)
 

каким образом можно посмотреть пуст ли массив ?хотя он наверника пуст если не происходит загрузка файла в директорию!

  Ответить  
 
 автор: cheops   (11.12.2011 в 18:10)   письмо автору
 
   для: сотка   (11.12.2011 в 18:00)
 

Просто выведите его дамп
<?php
  
echo "<pre>";
  
print_r($_FILES);
  echo 
"</pre>";
?>

  Ответить  
 
 автор: сотка   (11.12.2011 в 18:26)   письмо автору
 
   для: cheops   (11.12.2011 в 18:10)
 

Array
(
[big] => Array
(
[name] => 079. Ирина Круг И Алексей Брянцев - Только Ты.mp3
[type] =>
[tmp_name] =>
[error] => 1
[size] => 0
)

)

  Ответить  
 
 автор: cheops   (11.12.2011 в 18:45)   письмо автору
 
   для: сотка   (11.12.2011 в 18:26)
 

Видите [tmp_name] пустой? Судя по всему файл даже не попадает на сервер, возможно размер POST-данных или файлов ограничен в php.ini.

  Ответить  
 
 автор: сотка   (11.12.2011 в 19:48)   письмо автору
 
   для: cheops   (11.12.2011 в 18:45)
 

спасибо большое за помощь! теперь хоть понятно как искать ошибку! Я класс юзал...мда...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования