Возможно это как то решить?
Ошибки при создании миниатюр..
ссылка вот такого типа получается ...../userpics/10025/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_268.jpg
А было Изображение_268.jpg
Странно... у меня такого не происходит...
Какая версия галереи?
Всего скорее это зависит от того, установлены ли:
php5-iconv или libiconv (не помню точно что важнее).
и от настроек блока в файле php.ini:
[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1
Но это лишь мои догадки :)
версия 1.4.10
php.ini
;extension=php_iconv.dll
Неужели никто не сталкивался с этим?
Как решить проблему, куда смотреть то хоть?
PHP 5
IIS 6
Давай проверим догадки Makca.
Посмотри значения в блока [iconv] в своем php.ini (www.your_gallery.ru/phpinfo.php)
Если там прописана какая-то кодировка, то ее можно переопределить через .htaccess, для этого нужно добавить в этот файл примерно такие строки
php_value iconv.input_encoding = windows-1251
php_value iconv.internal_encoding = windows-1251
php_value iconv.output_encoding = windows-1251
Это тоже моя догадка, Makc может объяснить лучше.
Кстати, я тут перечитал первое сообщение.
Ссылка получается такая у тебя:
...../userpics/10025/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_268.jpg
Изображение то отображается?
Просто по другому эта ссылка выглядить не может.
Русских букв там быть не может в ссылке.
Можно заменить русские буквы на подчеркивание при заливке файлов:
Конфиг -> Дополнительные настройки файлов и миниатюр
Символы, запрещенные в именах файлов
Изменить значение по умолчанию:
$/\\:*?"'<>|` &
на вот такое значение:
$/\\:*?"'<>|` &ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁйцукенгшщзхъфывапролджэячсмитьбюё
По-моему, весьма изящьное решение этой проблемы - взять файл include/functions.inc.php, и заменить в нем
function path2url($path)
{
return str_replace("%2F","/",rawurlencode($path));
}
на
function path2url($path)
{
return str_replace("%2F","/",rawurlencode(iconv("windows-1251","utf-8",$path)));
}
Естественно, это требует наличия php с поддержкой iconv. Впрочем, вместо iconv можно использовать любую функцию, перекодирующую из 1251 в utf-8. Разумеется, вместо windows-1251 можно вписать что угодно, если имена файлов в иной кодировке.
Проверено на Coppermine 1.4.12, Apache 2.2, PHP 5.1.6.
после замены в файле include/functions.inc.php на
function path2url($path)
{
return str_replace("%2F","/",rawurlencode(iconv("windows-1251","utf-8",$path)));
}
Стали отображаться фотки ранее загруженные с русским названием файла, и также успешно загружаются фотки с русским названием,
НО теперь файлы которые имеют русское название не возможно переименовать во что то другое, при такой попытке CPG говорит:
"Критическая ошибка
Исходный файл 'albums/userpics/10001/Р"олубые_С...олмы.jpg' отсутствует."
Но если заменить файл functions.inc.php на старый вариант с кодом:
function path2url($path)
{
return str_replace("%2F","/",rawurlencode($path));
}
То переименовать удается успешно, но возвращается старая проблема с отображением файлов на русском :(
Кто знает где можно ещё подшаманить чуток? Чтобы и то и другое работало?
Есть в файле:
editOnePic.php
вот такой кусок кода:
// rename a file
if ($_POST['filename'] != $pic['filename'])
{
if($CONFIG['thumb_use']=='ht' && $pic['pheight'] > $CONFIG['picture_width']) {
$condition = true;
} elseif ($CONFIG['thumb_use']=='wd' && $pic['pwidth'] > $CONFIG['picture_width']){
$condition = true;
} elseif ($CONFIG['thumb_use']=='any' && max($pic['pwidth'], $pic['pheight']) > $CONFIG['picture_width']){
$condition = true;
} else {
$condition = false;
}
if ($CONFIG['make_intermediate'] && $condition ) {
$prefices = array('fullsize', 'normal', 'thumb');
} else {
$prefices = array('fullsize', 'thumb');
}
if (!is_image($pic['filename'])){
$prefices = array('fullsize');
}
foreach ($prefices as $prefix)
{
$oldname = urldecode(get_pic_url($pic, $prefix));
$filename = replace_forbidden($_POST['filename']);
$newname = str_replace($pic['filename'], $filename, $oldname);
$old_mime = cpg_get_type($oldname);
$new_mime = cpg_get_type($newname);
if (($old_mime['mime'] != $new_mime['mime']) && isset($new_mime['mime']))
cpg_die(CRITICAL_ERROR, sprintf($lang_editpics_php['mime_conv'], $old_mime['mime'], $new_mime['mime']), __FILE__, __LINE__);
if (!is_known_filetype($newname))
cpg_die(CRITICAL_ERROR, $lang_editpics_php['forb_ext'], __FILE__, __LINE__);
if (file_exists($newname))
cpg_die(CRITICAL_ERROR, sprintf($lang_editpics_php['file_exists'], $newname), __FILE__, __LINE__);
if (!file_exists($oldname))
cpg_die(CRITICAL_ERROR, sprintf($lang_editpics_php['src_file_missing'], $oldname), __FILE__, __LINE__);
if (rename($oldname, $newname))
{
cpg_db_query("UPDATE {$CONFIG['TABLE_PICTURES']} SET filename = '$filename' WHERE pid = '$pid' LIMIT 1");
} else cpg_die(CRITICAL_ERROR, sprintf($lang_editpics_php['rename_failed'], $oldname, $newname), __FILE__, __LINE__);
}
}
Может быть игра вот с этими переменными:
$oldname = urldecode(get_pic_url($pic, $prefix));
$filename = replace_forbidden($_POST['filename']);
$newname = str_replace($pic['filename'], $filename, $oldname);
на примере:
function path2url($path)
{
return str_replace("%2F","/",rawurlencode(iconv("windows-1251","utf-8",$path)));
}
вам и поможет.
P.S. У меня на сайте все работает с руссими буквами на ура без всяких изменений где-либо...
да у меня тоже всё было нормально пока не обновился с 1.4.9 до 1.4.13 :(
спасибо посмотрю может что получится..
Один из вариантов решения:
Открываем:
include/functions.inc.php
Находим строку:
$str = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $str);;
Заменяем на:
$str = str_replace(array('&', '"', '<', '>', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ъ', 'ы', 'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ъ', 'Ы', 'Э', 'Ю', 'Я'), array('&', '"', '<', '>', 'a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja', 'A', 'B', 'V', 'G', 'D', 'E', 'Jo', 'Zh', 'Z', 'I', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'X', 'C', 'Ch', 'Sh', 'Sch', 'J', 'J', 'Y', 'E', 'Y', 'Ja'), $str);;
Quote from: BrB on April 14, 2008, 10:54:48 AM
Один из вариантов решения:
Хороший вариант, но, я думаю, что лучше было бы сделать вот так:
Открываем:
include/functions.inc.php
Находим строку:
$str = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $str);
Под ней вставляем строку:
$str = str_replace(array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ъ', 'ы', 'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ъ', 'Ы', 'Э', 'Ю', 'Я'), array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja', 'A', 'B', 'V', 'G', 'D', 'E', 'Jo', 'Zh', 'Z', 'I', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'X', 'C', 'Ch', 'Sh', 'Sch', 'J', 'J', 'Y', 'E', 'Y', 'Ja'), $str);
P.S.Т.к. в строке:
$str = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $str);;
явная опечатка в коде с дублированием
;; в конце строки, то лучше искать данную строку с одной
;
Эту опечатку допустили сами разработчики :( (версия 1.4.16)
Quote from: BrB on April 16, 2008, 11:18:52 AM
Эту опечатку допустили сами разработчики :( (версия 1.4.16)
Это точно :)
Я им об этом сразу написал, как увидел:
http://forum.coppermine-gallery.net/index.php/topic,51899.html
Makc666 думаю что ваш вариант лучше. У себя так и сделал.
Думаю, что еще лучше будет если сторока будет такая,
$str = str_replace(array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ъ', 'ы', 'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ъ', 'Ы', 'Э', 'Ю', 'Я'), array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja', 'a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja'), $str);
т.к. приведем все к одному регистру
Quote from: BrB on April 25, 2008, 11:03:22 AM
Думаю, что еще лучше будет если сторока будет такая,
$str = str_replace(array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ъ', 'ы', 'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ъ', 'Ы', 'Э', 'Ю', 'Я'), array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja', 'a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja'), $str);
т.к. приведем все к одному регистру
Кстати да! Очень хорошое предложение!!!
Подобный вариант будет ещё лучше.
Т.к. UNIX системы чувствительны к регистру букв.
Единственное что, для удобства редактирования, подобные строчки лучше разбивать на две строки, к примеру...
Переименование только в маленькие буквы:$str = str_replace(array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ъ', 'ы', 'э', 'ю', 'я'), array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja'), $str);
$str = str_replace(array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ъ', 'Ы', 'Э', 'Ю', 'Я'), array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja'), $str);
Переименование в маленькие и большие:$str = str_replace(array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ъ', 'ы', 'э', 'ю', 'я'), array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja'), $str);
$str = str_replace(array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ъ', 'Ы', 'Э', 'Ю', 'Я'), array('A', 'B', 'V', 'G', 'D', 'E', 'Jo', 'Zh', 'Z', 'I', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'X', 'C', 'Ch', 'Sh', 'Sch', 'J', 'J', 'Y', 'E', 'Y', 'Ja'), $str);
Хотя это я уже придераюсь :)
Важное дополнение: При копировании из поста куска кода в файл, не забудьте при сохранении файла указать его кодировку, т.е. UTF-8 при использовании стандартной версии галереи.
у меня возникла проблемка, связанная и с этой темой, и с темой "bbcode превью с увеличением по клику для вставки фото на форумы" http://forum.coppermine-gallery.net/index.php/topic,51295.0.html.
К какой теме моя проблемка больше относится пока не знаю, но чтоб не постить в двух темах, напишу только тут.
Благодаря предыдущему сообщению от Makc666 я успешно решил проблему с русскими названиями файлов. Транслитерация работает замечательно. Однако в результатах работы плагина bbcode_1_21 возникает проблема отображения символа тильда ~, которая отображается как набор символов %7E.
Аналогично решению с русскими буквами попытался решить проблему и с тильдой, но не получилось. Порекомендуйте плиз вариант корректного ее отображения. Заранее спасибо.
и еще одно маленькое уточнение к написанному мной выше: параллельно с этой задачей порекомендуйте решение проблемы с некорректным отображением ссылок, если в их адресе находятся спецсимволы. так, на моем форуме запрещены символы % и ~, которые иногда встречаются. хотелось бы автоматом их заменить на процессе загрузки файлов.
я сам допустил ошибку в коде, потому и не работало. я добился чего хотел.
прошу модера удалить мои предыдущие сообщения.
Quote from: D.Kalessky on May 12, 2008, 03:27:48 PM
я сам допустил ошибку в коде, потому и не работало. я добился чего хотел.
прошу модера удалить мои предыдущие сообщения.
Удалять не стоит :)
Вы сами можете отредактировать ваше сообщение и просто зачеркнуть в нем текст.
Вот так...
несколькими постами выше я писал, что по аналогии замены русских букв транслитом я сделал замену тильды ~. Потестировал, все норм. Но сегодня обнаружил несколько свежезагруженных пользователями файлов, где тильда не заменилась на указанный мной символ. Перепроверил еще раз- у меня все норм. Как такое возможно?
сорри, опять забыл указать версию.
установлена cpg 1.4.16
Quote from: D.Kalessky on June 02, 2008, 04:19:48 PM
несколькими постами выше я писал, что по аналогии замены русских букв транслитом я сделал замену тильды ~. Потестировал, все норм. Но сегодня обнаружил несколько свежезагруженных пользователями файлов, где тильда не заменилась на указанный мной символ. Перепроверил еще раз- у меня все норм. Как такое возможно?
Вы нам напишите ваши строчки замены :)
Кстати, ~ - это специфический символ и его использование как-то сомнительно для меня лично :)
я тупо заменил тильду двойным подчеркиванием в файле functions.inc.php:
$str = str_replace(array('~', далее весь русский алфавит), array('__', далее транслит), $str);
к предыдущему вопросу хочу добавить еще один: пока разбирался с заменой тильды на другой символ, я внес ее в список символов, запрещенных в именах файлов. На данный момент запрещены %~$/\\:*?"'<>|` &
Но вчера среди загруженных фотографий появилась фотка с именем 2~1.jpg
Не обращайте внимание. Это галерея так переименовывает файлы при загрузке файлов с именами, которые уже есть в папке пользователя. Когда в след.раз этот ользователь загрузит фото с именем 2.jpg, галерея переименует его в 2~2.jpg
Quote from: Alex Revo on June 03, 2008, 06:55:48 AM
Не обращайте внимание. Это галерея так переименовывает файлы при загрузке файлов с именами, которые уже есть в папке пользователя.
но мне от этого не легче. в таком случае помогите изменить встроенную функцию переименования файлов с тем же названием, чтоб вставлялась не тильда, а хотя бы подчеркивание или еще как-то.
Quote from: D.Kalessky on June 03, 2008, 08:11:03 AM
но мне от этого не легче. в таком случае помогите изменить встроенную функцию переименования файлов с тем же названием, чтоб вставлялась не тильда, а хотя бы подчеркивание или еще как-то.
Файл:
upload.php while (file_exists($dest_dir . $picture_name)) {
$picture_name = $matches[1] . '~' . $nr++ . '.' . $matches[2];
}
Меняйте на что хотите :)
Makc666, спасибо!
Все сделал. Теперь работает как надо.
У меня стоит cpg1418 я зделал, как писали выше, добавил под строку
$str = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $str);
строки
$str = str_replace(array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ъ', 'ы', 'э', 'ю', 'я'), array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja'), $str);
$str = str_replace(array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ъ', 'Ы', 'Э', 'Ю', 'Я'), array('A', 'B', 'V', 'G', 'D', 'E', 'Jo', 'Zh', 'Z', 'I', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'X', 'C', 'Ch', 'Sh', 'Sch', 'J', 'J', 'Y', 'E', 'Y', 'Ja'), $str);
Всё заработало прекрасно, огромное спасибо, но при груповом добавлении файлов русские имена не меняются :'( как это можно поправить?
Quote from: MISHA on July 19, 2008, 05:48:52 PM
Всё заработало прекрасно, огромное спасибо, но при груповом добавлении файлов русские имена не меняются :'( как это можно поправить?
Круто, я в первый раз расписал тоже самое, что и раньше.
Странно, конечно, что не меняется, но у меня сейчас нет возможности потестировать и сказать точнее.
Вы уверены, что в настройках галереии вы не добавляли русские файлы в список исключений?
В "Символы, запрещенные в именах файлов " я пробывал так:
$/\\:*?"'<>|` &абвгдеёжзийклмнопрстуфхцчшщыьъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЪЭЮЯ
и так:
$/\\:*?"'<>|`
Но имена меняются на транслит только при одиночном добавлении файлов, при групповом добавлении одни квадраты
Quote from: MISHA on July 24, 2008, 10:26:35 PM
В "Символы, запрещенные в именах файлов " я пробывал так:
$/\\:*?"'<>|` &абвгдеёжзийклмнопрстуфхцчшщыьъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЪЭЮЯ
и так:
$/\\:*?"'<>|`
Но имена меняются на транслит только при одиночном добавлении файлов, при групповом добавлении одни квадраты
Я теперь понял, о чём вы.
На самом деле, Вам нужно было написать, что квадратики отображаются уже при открытие папки во встроенном проводнике.
Проблема в том, файлы на сервере лежат в одной кодировке, а вот из отображение в другой.
Если Вы переключите бразуер на кодировку windows-1251, то имена файлов увидите.
Но это Вам правда ничем не поможет.
Это конечно ошибка в скрипте видно, но вот я пока не смог найти с ходу способ это исправить :)
Добрый день всем!
Проблема следующая:
Галерея (с кодировкой 1251) интегрирована с форумом СМФ.
В СМФе стоит мод вывода картинок, загруженных пользователем, из Галереи в профиль.
Если файл картинки содержит русские буквы - превьюшка не выводится (в самой Галерее всё отображается прекрасно, вне зависимости от того, на каком языке название файла).
В чём может быть затыка?
Затыка в кодировке. Нужно смотреть код мода и искать в каком месте возникает проблема.
Нашёл данную тему, всё зделал как описал Makc666, не получилось. Начинаю читать тему заново и тут до меня доходит, что это вообще не моя тема. Поискал ещё по русской ветке, не нашёл. Разрешите писать здесь.
Проблемма в том, что не отражаются изображения имеющие русские имена файлов.
Предыстория-раньше всё работало в том числе отображались изображения с русскими именами файлов. Не было проблем и по теме топика. У хостера грохается жёский. Всё подняли из бэкапа. Сайт (nuke) работает, а вот в галерее косяк. Перезалил файлы галереи. Не помогает. Скажите из-за чего это и как можно исправить? Может что у хостера в настройках после краха изменилось?
За поднятие топика сори. Помогите кто может. До 30% имена файлов на русском были залиты. Блондинки ругаются.
А как теперь выглядят имена файлов в ссылках и как называются сами файлы?
Alex Revo, имена файлов в ссылках выглядят с русскими буквами например - gallery/albums/userpics/10001/normal_Усть_Нера84.JPG
а сами файлы называются типа так - gallery/albums/userpics/10001/normal_Усть_Нера84.JPG
Раньше так же было. То есть эти абраказябрики нормально отражались. А сейчас.... обидно.
Я полагаю в момент формирования ссылки на файл теперь стоит перекодировать его имя из utf-8 в cp1251 функцией iconv.
У меня была когда-то такая проблема, но решения в коде под рукой нет.
Почитайте в форуме темы о кодировках, я делал решение на основе этой информации.
Alex Revo, не сочтите за труд в помощи. Я не программер, я обычный пользователь. Почитал что смог в русской ветке, не нашёл подходящего. Испытал - charsetmgr.php, благо всё назад нормально этим же путём вернулось.
Quote from: Valeryn on November 12, 2008, 02:01:43 PMУ хостера грохается жёский. Всё подняли из бэкапа. Сайт (nuke) работает, а вот в галерее косяк.
Перезалил файлы галереи. Не помогает. Скажите из-за чего это и как можно исправить? Может что у хостера в настройках после краха изменилось?
И что значит подняли из бекапа? Что именно?
А что значит "Перезалили файлы галереи"?
Может быть у хостера и изменилось что-то, только мы этого точно не знаем :) Это Вам нужно его спросить.
QuoteИ что значит подняли из бекапа? Что именно?
А что значит "Перезалили файлы галереи"?
Месяц назад, всё содержимое папки "public_html" было скаченно с сервера. После краха всё содержимое в том числе и база данных была занового залита на сервер. База востанавливалась dumper -ом. У хостера поменялся только жёский диск. До краха стояла версия 1.4.18 после того как обнаружил не возможность отображения файлов с русскими именами проапгрейдил до 1.4.19. Не помогло. Изображения с русскими именами так и не отражаются.
Quote from: Valeryn on November 19, 2008, 03:05:50 PM
Месяц назад, всё содержимое папки "public_html" было скаченно с сервера. После краха всё содержимое в том числе и база данных была занового залита на сервер. База востанавливалась dumper -ом. У хостера поменялся только жёский диск. До краха стояла версия 1.4.18 после того как обнаружил не возможность отображения файлов с русскими именами проапгрейдил до 1.4.19. Не помогло. Изображения с русскими именами так и не отражаются.
Проверьте правильность имен файлов в папке "albums".
При смене хостинга столкнулась с проблемой неправильной кодировки единичных кириллических символов в именах файлов.
Ola, что проверенно то описанно выше. Я спрашиваю как это безобразие исправить.
Quote from: Valeryn on November 21, 2008, 03:55:07 AM
Ola, что проверенно то описанно выше. Я спрашиваю как это безобразие исправить.
Наверное, чтобы знать, как это исправить, нужно знать кучу вещей.
1. Какая операционная система у хостера?
2. Как отображались файлы с русскими именами в шеле до падения?
3. Как скачивались файлы при бекапе?
4. Как заливались файлы при бекапе?
5. Можно ли сейчас добавить файлы с русскими именами?
6. Работают ли они после этого?
7. Как они отображаются в шеле сейчас?
Коллеги, похожая проблема...
Coppermine Photo Gallery 1.4.21
В самой галерее все отображается нормально, превьюшки показываются (в исходном тексте они типа <img src="albums/userpics/thumb_%D1%EA%E0%ED%E8%F0%EE%E2%E0%F2%FC10002.JPG")
А вот при выводе через скрипт "include script for CPG (c) 2003 GauGau (mail@gaugau.de) V1.4 "
превьшки с русскими именами не показываются (исходник типа photogallery/albums/userpics/10005/thumb_Вид_с_правого_берега_.JPG")
Как можно исправить? база и страницы 1251.
Quote from: Ahtub on January 17, 2011, 03:49:16 PM
Как можно исправить? база и страницы 1251.
Что-то мне подсказывает, что только переименованием имём файлов на английский язык.
А в будущем можно использовать автоматическую замену русских букв на английские.
http://forum.coppermine-gallery.net/index.php/topic,43506.msg253509.html#msg253509
Заменил скрипт на CpmFetch
http://forum.coppermine-gallery.net/index.php/topic,35450.0.html
и все заработало как надо.
N/A
N/A