| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > id3_get_tag работает, а id3_set_tag не хочет... |
| Автор: AXS 7.9.2009, 09:30 | ||||
| Тема такая: Пользователь загружает mp3 файл, показывается форма с тегами mp3, пользователь дополняет или изменяет теги, нажимает готово и теги записываются в файл. Просмотр тегов функцией id3_get_tag работает отлично. А вот с удалением или записью проблемы. Все нужные теги и имя загруженного файла (включая абсолютный путь) передаются методом post. Права на запись выставляю успешно. Получаю версию тегов, удаляю теги и записываю новые. По ответам функций всё проходит гладко, но теги НЕ ЗАПИСЫВАЮТСЯ и НЕ УДАЛЯЮТСЯ.
Результат:
|
| Автор: Ипатьев 7.9.2009, 14:42 |
| если вопросы к функции id3_set_tag, то при чем здесь форма и метод ПОСТ? |
| Автор: AXS 8.9.2009, 07:11 | ||
Интересно, что бы Вы ответили, если бы я тупо написал: "Чё то id3_set_tag не пашет..."?. Я описал всю ситуацию, чтобы не было лишнего трёпа типа "А может парамеры не доходят..." или "А ты вообще подключил модуль id3?" PS: Жаль что Вы мне ничем больше не можете помочь... |
| Автор: NewDima 8.9.2009, 07:28 |
| а не кажется, что с кодировкой проблемы? |
| Автор: AXS 8.9.2009, 08:24 | ||
То что в последних строчках - это исходные теги файла (в CP866 или что то типа того). Я, как видно по коду, пытаюсь стереть старые теги и записать новые в UTF8.* Но если вникнуть в код, можно заметить что теги не стираются, а остаются старыми. * Так делает программа под линукс - EasyTeg. Я ею все mp3 на компе перелопачиваю - теги в win1251 линукс кракозябрами кажет. |
| Автор: AXS 8.9.2009, 08:56 | ||||
Мне кажется Вы плохо разглядели код, который я предоставил. Более подробно special for you:
Как видно здесь нету "этапа передачи данных на сервер"... |
| Автор: Ипатьев 8.9.2009, 11:03 |
| Ну, судя по отладочным данным, дело, действительно, не в передаче данных. Но. Тем не менее. В коде очень много лишнего. Судя по вашим ответам, вы гораздо глубже в теме, чем остальные посетители. К примеру, никто из тех, кому вы задаете вопрос, не может знать какие-то там исходные теги. То есть, вы на правильном пути. При этом проблема у вас в методологии. В коде очень много лишнего. И нет нужного. Есть выставление прав, но нет проверки - выставились ли они. Непонятно, настроен ли РНР выводить ошибки. Плюс, опять же, все свалено в кучу. Чтобы проверить функцию id3_remove_tag, не нужно так много кода. Вместо него надо совершать больше действий, шевелиться, пробовать разные варианты. Опять же, нет чтения тегов перед записью. Все это необходимые элементы отладки. На мой взгляд, надо написать код буквально из двух строчек, который будет работать с имеющимся файлом, и в котором будет только id3_remove_tag. И работать только с ним. При этом подсовывать этой функции пустой файл, испорченный файл, файл, запрещенный для записи и так далее. Отладка - дело серьезное и муторное. Но если подходить к ней грамотно, то вполне можно добиться успеха. |
| Автор: AXS 8.9.2009, 11:57 | ||||
1) Проверял ручками - выставляются 2) Да, настроен 3) Теги читаются, выводятся в форму, редактируются пользователем и отправляются POST'ом в этот самый код, который мы рассматриваем. Я об этом, кстати писал в первом посте
Спасибо за советы по отладке. Я правда подсовывал скрипту немало файлов... Весь тот мусор в коде как раз и возник в результате отладки, чтобы сразу видеть что и как прошло. Но у меня такое ощущение, что эти две функции вообще не работают |
| Автор: Ипатьев 8.9.2009, 12:01 |
Очень странно. Почему в форму теги выводятся нормально, а в отладочный вывод - криво. |
| Автор: AXS 8.9.2009, 13:59 | ||
Ах да. Забыл сказать. Я читаю теги, определяю их кодировку, перекодирую (если надо) в utf8 и вывожу в форму. А тут я схалтурил - просто вывел, чтобы было видно переписались ли они. |