Пропали вложения

Автор kak2z, 17 сентября 2010, 22:42:14

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kak2z

Привет всем. Собственно при переезде на новый хостинг пропали вложения.  Они у меня были разбиты на 5 папок. При переезде тупо скопировал все файлы со старого хостинга на новый. Физически файлы есть.  Форум находит файлы только в первой папке.  На остальных папках пишет размер но пишет что нет файлов. Помогайте камрады. Файлом много и их утрата будет самой настоящей потерей потерь. )))
Спасибо.

П.С. В последней папке появилось 2 файла благодаря тому что я для пробы вложил картинку.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

BIOHAZARD

в БД при помощи phpMyAdmin загляните, как там пути к папкам прописаны
возможно надо будет подправить
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

kak2z

#2
Вот что я вижу в PHPAdmin

a:6:{i:1;s:51:"/home/kaktu278/public_html/perezzz.info/attachments";i:5;s:52:"/home/kaktu278/public_html/perezzz.info/attachments1";i:6;s:52:"/home/kaktu278/public_html/perezzz.info/attachments2";i:7;s:52:"/home/kaktu278/public_html/perezzz.info/attachments3";i:8;s:52:"/home/kaktu278/public_html/perezzz.info/attachments4";i:9;s:52:"/home/kaktu278/public_html/perezzz.info/attachments5";}

Но увы моих знаний не хватает что бы понять что тут не так. С первого взгляда пути прописаны верно. А вот что такое a:6:{i:1;s:51: я не знаю. Помогайте пожалуйста)

П.С. Только что путем экспериментов вывел что видно вложения только  из строки  которая в самом верху. Ставил на то место другие папки - вложения сразу находятся. Нижние поля не работают. Хотя размер показывают, но количество файлов какую бы директорию я не подставлял остается неизменное 1962

Ну собственно разобрался.  i:1 это номер директории, у меня почему то они автоматически не проставлялись, пришлось методом тыка узнавать у какой директории какой номер.
Спасибо за помощь.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

BIOHAZARD

Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

kak2z

Наладил но не совсем. У меня там было 4 папки с вложениями. Так вот 2 запустилось, а 2 так и не смог.. методом перебора дошел то ID 100 но так и не помогло. Но хоть что то сохранилось и то радует. Пока еще пытаюсь плясать с бубном. Если получится то напишу.
Спасибо большое за подсказку насчет phpAdmin.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Marginal

kak2z, у Вас и с вложениями, и с кнопками проблема одна и та же, похоже - после смены хоста слетели пути, где есть это имя. А repair_settings.php Вы применять не пробовали?
add. Смотрел, правда, на локальном..на нем абсолютные пути показывает. Но чем черт не шутит? )

kak2z

Дак я сразу все пути восстанавливал repair_settings.php в том то и дело...  Там все четко прописано. Если пути не были прописаны то бы смайлики не отображались.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

BIOHAZARD

repair_settings.php не поможет
id_folder можно посмотреть в таблице smf_attachments
для каждого вложения там отображается ид папки, в которой он сохранён
можно попробовать (после бэкапа БД!!!) для всех файлов изменить id_folder на 1 и закинуть все аттачи в одну папку
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

Marginal

#8
Цитата: kak2z от 18 сентября 2010, 08:08:58
Вот что я вижу в PHPAdmin

a:6 - кол-во папок с вложениями +1

{i:1;s:51} - номер папки, длина строки, содержащей полный путь, т.е "/home/kaktu278/public_html/perezzz.info/attachments", и так далее.
Возможно, id папки должен совпадать с её номером.Т.е. i:1 = /attachments1, и так далее (не проверял).
p.s. у вас только у первой совпадает.. .
--
не, неправильная мысль. у первой-то вообще номера нет... :(
хм). ну, у первой нет, у следующих +1. все-таки надо проверить)).
add. путанно написал. поясню.
a:6:{i:1;s:51:"/home/kaktu278/public_html/perezzz.info/attachments";i:5;s:52:"/home/kaktu278/public_html/perezzz.info/attachments1";i:6;s:52:"/home/kaktu278/public_html/perezzz.info/attachments2";i:7;s:52:"/home/kaktu278/public_html/perezzz.info/attachments3";i:8;s:52:"/home/kaktu278/public_html/perezzz.info/attachments4";i:9;s:52:"/home/kaktu278/public_html/perezzz.info/attachments5";}
переделать в
a:6:{i:1;s:51:"/home/kaktu278/public_html/perezzz.info/attachments";i:2;s:52:"/home/kaktu278/public_html/perezzz.info/attachments1";i:3;s:52:"/home/kaktu278/public_html/perezzz.info/attachments2";i:4;s:52:"/home/kaktu278/public_html/perezzz.info/attachments3";i:5;s:52:"/home/kaktu278/public_html/perezzz.info/attachments4";i:6;s:52:"/home/kaktu278/public_html/perezzz.info/attachments5";}
в базе в таблице attachments в полях id_folder тоже проверить.

Mavn

при переносе также следует учитывать в каком режиме переносите файлы ASCI или двоичный. в связи с тем что у файлов в папке расширений нет фтп клиент определяет режим неверно и открыть такие файлы будет невозможно.
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

spinus

В общем то же самое. Пропали вложения. Дело было так: стал разбираться почему при присоединении ссылки на ютуб пишет "Предотвращать внешние вложения", зашел админку->вложения и аватары->обслуживание файлов - не пускает. Запустил repair_settings.php, стал проверять пути вложений - в настройках стояла строка из каких то двоеточий и скобок, значение recommended - полный путь /home/название базы/.../attachments, поставил его, запустил проверку вложенных файлов - нашел несоответствие путей и вложений. Нажал исправить - все вложения пропали. Как то можно исправить?
Simple portal 2.3.6

kak2z

В базе данных, где прописаны пути папок вложений, есть циферки.. 1 2 3 4 и т.п. вот их методом тыка я подбирал)))
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

spinus

Цитата: kak2z от 10 января 2011, 16:17:56
В базе данных, где прописаны пути папок вложений, есть циферки.. 1 2 3 4 и т.п. вот их методом тыка я подбирал)))
а у вас тоже таблица smf_attachments стала пустой? а физически кстати аттачи присутствуют
Simple portal 2.3.6

kak2z

да нет... записи были..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

spinus

В очередной раз поменял хостинг, смотрю - вложения пропали. На самом деле я думал что они пропали. Фишка в том, что пути нужно указывать не только в repair_settings.php но и в админке - форум - вложения и аватары - настройка нескольких папок вложений - путь а потом нажать не "добавить путь" а "сохранить", тогда все нормально видится
Simple portal 2.3.6

kak2z

Это точно... а иногда и этот вариант не помогает.. приходиться с бубном плясать вокруг базы)) У меня такое было)) Пропали мои 10 000 вложений на форуме)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Roman

#16
Столкнулся с аналогичной проблемой. Удалось все восстановить, хотя и пришлось потратить на это часа 2-3 времени в поисках решения методом тыка.
Описываю порядок танцев с бубном:

Для начала, вкратце, с чем я столкнулся. На сайте (SMF 2.0.2) было настроено несколько папок вложений. После переезда сайта на другой сервер, вложения не отображались. Исправление путей к папкам в поле "attachmentUploadDir" БД не помогло. В админке в "[Настройка нескольких папок вложений]" папки после этого, кстати, отсутствовали. Завел эти папки в админке. Но, вложения заработали только из самой первой папки, а из остальных по прежнему не показывались. После нескольких тестов, и изучения записей бд, удалось найти решение.

Приблизительно, как нужно делать (как получилось у меня)

1. При использовании repair_settings.php не имеет смысла исправлять путь к attachments. Лучше оставить как есть, чтобы понимать, что там было.
Впрочем, если исправили, как это сделал я, ничего страшного. Так как папки все равно придется заводить в настройках повторно. А то, что было, можно посмотреть в бэкапе базы.

2. В БД, через PhpMyAdmin, в таблице "smf_settings", в строке "attachmentUploadDir" видите примерно такую запись:

a:6:{i:1;s:50:"/х/attachments";i:2;s:51:"/х/attachments2";i:3;s:51:"/х/attachments3";i:4;s:51:"/х/attachments4";i:5;s:51:"/х/attachments5";i:6;s:51:"/х/attachments6";}


Нужно поменять эти пути на соответствующие новому серверу. Например:

a:6:{i:1;s:50:"/y/attachments";i:2;s:51:"/y/attachments2";i:3;s:51:"/y/attachments3";i:4;s:51:"/y/attachments4";i:5;s:51:"/y/attachments5";i:6;s:51:"/y/attachments6";}

"/х/attachments" - соответственно, путь к папке на старом сервере, "/y/attachments" - на новом.

3. Идете в админку форума, в "[Настройка нескольких папок вложений]", и скорее всего видите, что папок там все равно нет, список пуст (во всяком случае, так было у меня).
Добавляете там новые пути ко всем папкам (т.е. в случае данного примера, это /y/attachments, /y/attachments1 и т.д.), с помощью нажатия кнопок "Добавить путь" -> "Сохранить".

Далее обнаруживаете, что отображаются размеры всех папок, но количество файлов показывается только для первой, на остальных папках стоит "0". На форуме соответственно, работают вложения только из первой папки. Возникает вполне закономерный вопрос - "WTF???".
Далее.

4. Смотрите ту же строчку в БД ("smf_settings" и "attachmentUploadDir"), и видите примерно такие метаморфозы:

a:6:{i:1;s:46:"/y/attachments";i:7;s:47:"/y/attachments2";i:8;s:47:"/y/attachments3";i:9;s:47:"/y/attachments4";i:10;s:47:"/y/attachments5";i:11;s:47:"/y/attachments6";}


Внимательный админ сразу заметит, в чем проблема. Я заметил не сразу, обратив внимание лишь на изменение непонятного аргумента "s:". Кстати, это "s:" пока так и осталось загадкой для меня, посмотрел, на разных форумах это значение разное. Где-то "61" и "62", где-то "62" и "63", и например, "50" и "51", у меня после переезда и повторного заведения папок, поменялось на "46" и "47". Интересно, что это такое.

Так вот, нам важен аргумент "i:", который обозначает порядковый номер папки в списке "[Настройка нескольких папок вложений]", и значение "id_folder" у каждого файла вложения в БД. Как видим, они, по сравнению с изначальной версией, поменялись на 7,8,9,10,11, неизменным остался лишь 1, из-за чего и работали вложения только из первой папки.
Кстати, из этого получается вывод, что вся строка "attachmentUploadDir" перезаписывается при добавлении папок через админку форума, и поэтому, вероятно, пункт 2 инструкции можно исключить.
Папки получили номера 7,8,9,10,11, полагаю, по той причине, что где-то стоит инкремент нумеровки создаваемых папок, и поэтому, когда мы их создаем заново после пропадания, они нумеруются так, как если бы не пропадали. Где именно та строка с инкрементом, не нашел.

Возвращаясь к делу, меняем приведенную выше строку, соответственно, на

a:6:{i:1;s:46:"/y/attachments";i:2;s:47:"/y/attachments2";i:3;s:47:"/y/attachments3";i:4;s:47:"/y/attachments4";i:5;s:47:"/y/attachments5";i:6;s:47:"/y/attachments6";}

То есть, исправляем номера папок у аргумента "i:" на правильные. Правильные номера папок нужно брать из старой бд (предполагаю, они могут идти и не по порядку, если вы когда-то эти папки меняли/удаляли).

После этого действия, отлично, вложения работают) В настройках нескольких папок в админке, в свою очередь, также начинает отображаться и количество файлов в каждой папке.



Понимаю, что теоретически, должно существовать какое-то более лаконичное и правильное решение этой проблемы, с помощью изменений только БД. Однако ни здесь, ни на .org не нашел. Самостоятельно исследовать было уже слегка лениво)

maestrosite.ru

Roman
1. Текущая папка вложений - currentAttachmentUploadDir - указывается идентификатор

2. Записи вида s:46:"..." - это результат работы http://www.php.net/manual/ru/function.serialize.php - тип [:размер] : значение
a - array - массив
s - string - строка
i - integer - число

3. Пункт 2 в вашей инструкции, действительно, можно исключить. Либо добавить указание размера изменённых строк.


В вашем случае массив (из 6 элементов) оказался повреждённым, но идентификатор текущей папки остался прежним (currentAttachmentUploadDir) и новые папки добавлялись уже с учётом этого параметра.


PS У кого пропадали вложения пробовали запускать проверку в обслуживании вложений?
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Цитата: maestrosite.ru от 06 сентября 2012, 18:36:49
PS У кого пропадали вложения пробовали запускать проверку в обслуживании вложений?

запускал))) сказало что найдены потеряные вложения и вроде предложило все удалить нафиг)) так я руками пути восстанавливал)) но это давно было - я уже не помню толком как делал)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Mavn

при наличии бэкапа восстанавливается запись в бд аккуратно меняются пути и все заработает
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Roman

maestrosite.ru, спасибо за пояснение насчет параметра s:, все встало на свои места)
Как я понимаю, получается довольно просто, s: - это фактически, число символов, содержащихся в пути к папке.
В моем случае, это как раз и было "50" и "51" на старом сервере, и "46" и "47" на новом, специально проверил, пересчитал. Это все символы, с учетом слэшей. А отличаются на единицу, так как следующей после "attachments" идет папка "attachments2", где соответственно, на 1 символ больше.

Поэтому, теоретически, всю приведенную выше инструкцию, можно свести к 1 пункту:

При применении repair_settings.php пути к attachments не трогать.
В БД, через PhpMyAdmin, в таблице "smf_settings", в строке "attachmentUploadDir" будет что-то подобное:

a:6:{i:1;s:14:"/х/attachments";i:2;s:15:"/х/attachments2";i:3;s:15:"/х/attachments3";i:4;s:15:"/х/attachments4";i:5;s:15:"/х/attachments5";i:6;s:15:"/х/attachments6";}

И в этой строке нужно будет поменять пути к папкам, и значения s: (количество символов в пути к папке)

Например:

a:6:{i:1;s:16:"/yyy/attachments";i:2;s:17:"/yyy/attachments2";i:3;s:17:"/yyy/attachments3";i:4;s:17:"/yyy/attachments4";i:5;s:17:"/yyy/attachments5";i:6;s:17:"/yyy/attachments6";}


где соответственно:
/х/attachments - путь к папкам на старом сервере
/yyy/attachments - путь к папкам на новом сервере
s: - количество символов в пути к папке.

То есть, нужно поменять пути к папкам, и важно(!), значения s:, которые вы заполняете, банально вручную посчитав количество символов в новых путях.
В приведенном примере, в пути "/х/attachments" - 14 символов, в "/х/attachments5" - 15 символов, в "/yyy/attachments3" - 17 символов, и т.д.


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

Yarik

Эту функцию видать поправили - ибо переезжал столкнулся с точно таким же,отоброжало только первую папку а остальные не используются и 0 вложений.Запустил проверку показало что столько то вложений в несуществующей папке и 6 вложений утерянны.Вложения утерянные реально были.Забекапил и запустил исправить.Всё корректно восстановилось - вложений порядка 8000 в трех папках.
Пы.Зы.Некропостером не называть :)

GeorG

Сейчас это пофиксено в repair_settings.php и там правильно определяются дополнительные папки вложений.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Yarik

Цитата: GeorG от 19 ноября 2016, 19:06:06Сейчас это пофиксено в repair_settings.php и там правильно определяются дополнительные папки вложений.
Не разу им не пользовался,всё руками всегда.