|
|
|
|
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 в 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;
|
| |
|
|
|
|
|
|
|
для: сотка
(11.12.2011 в 16:58)
| | Файл во временной директории появляется (т.е.на сервер он попадает)? | |
|
|
|
|
|
|
|
для: cheops
(11.12.2011 в 17:18)
| | как это посмотреть???вроде он же удаляется сразу же из временной директории...в дампе таблицы он добавляется,т.е указывается путь к файлу(которого нет в указанной директории) | |
|
|
|
|
|
|
|
для: сотка
(11.12.2011 в 17:31)
| | вообщем заполняю форму нажимаю добавить,редикт на главную-БД заполняется! проверяю директорию ../../files/mp3/ файлов нет в ней( | |
|
|
|
|
|
|
|
для: сотка
(11.12.2011 в 17:35)
| | Права доступа на ../../files/mp3/ выставлены? | |
|
|
|
|
|
|
|
для: сотка
(11.12.2011 в 17:31)
| | Через массив $_FILES, удаление можно закомментировать, впрочем последнее не обязательно - достаточно просто посмотреть назначено ли имя для временного файла - если назначено, значит он попал не сервер. | |
|
|
|
|
|
|
|
для: cheops
(11.12.2011 в 17:55)
| | каким образом можно посмотреть пуст ли массив ?хотя он наверника пуст если не происходит загрузка файла в директорию! | |
|
|
|
|
|
|
|
для: сотка
(11.12.2011 в 18:00)
| | Просто выведите его дамп
<?php
echo "<pre>";
print_r($_FILES);
echo "</pre>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(11.12.2011 в 18:10)
| | Array
(
[big] => Array
(
[name] => 079. Ирина Круг И Алексей Брянцев - Только Ты.mp3
[type] =>
[tmp_name] =>
[error] => 1
[size] => 0
)
) | |
|
|
|
|
|
|
|
для: сотка
(11.12.2011 в 18:26)
| | Видите [tmp_name] пустой? Судя по всему файл даже не попадает на сервер, возможно размер POST-данных или файлов ограничен в php.ini. | |
|
|
|
|
|
|
|
для: cheops
(11.12.2011 в 18:45)
| | спасибо большое за помощь! теперь хоть понятно как искать ошибку! Я класс юзал...мда... | |
|
|
|