[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите в чем косяк
kvy
Итак. Существует таблица в MySQL, в которую с помощью неких форм и скриптов вношу различные данные, в т.ч. пути к файлам, которые выгружаю на сервер. Так вот, если при выгрузке файлов их наименования и папки, в которых они лежат, на латинице - то все ОК. Если же наименование файлов в кириллице, или же название папок, в которых лежат выгружаемые файлы в кириллице - то в таблицу MySQL добавляется пустая строка (разве что ID новый и дата внесения записи записывается корректно). Как сделать так, чтобы корректно работала зпись и в том случае, когда выгружаемые файлы лежат например в папке "Мои документы" или называются рисунок.PNG?


Collation строк, где храняться пути к файлам: cp1251_general_ci
MySQL client version: 5.0.51a



Спустя 27 минут, 37 секунд (16.06.2011 - 23:20) Игорь_Vasinsky написал(а):
после коннекта к БД добавить
mysql_query("SET NAMES 'utf8'");

или глянуть в сторону
iconv();


У меня в подписи ссылка на мой журнал - есть там статейка.

Спустя 7 минут, 15 секунд (16.06.2011 - 23:27) inpost написал(а):
kvy
Это вопрос относится к разделу "Кодировки", иди читай:
http://phpforum.ru/index.php?showtopic=27289

Спустя 51 минута, 12 секунд (17.06.2011 - 00:18) kvy написал(а):
попробывал mysql_query("SET NAMES 'utf8'"); - никаких изменений.
попробывал mysql_set_charset('utf8'); - запись в таблицу теперь стала появляться, но состоит из знаков "?"
а функцию iconv(); не представляю как применить.
На пальцах можете объяснить в каком месте какая кодирока и в каком месте конфликт?
заранее спасибо

Спустя 20 минут, 32 секунды (17.06.2011 - 00:39) Игорь_Vasinsky написал(а):
У тя всё должно быть в одной кодировке, даже сами файлы (в моей подписи линк на тему)

Если нет - то - всё подвести под одну кодировку

Цитата
а функцию iconv(); не представляю как применить.

а мануалы, а google? Обленились совсем.

Спустя 10 часов, 6 минут, 29 секунд (17.06.2011 - 10:45) Guest написал(а):
посмотрел тему "Замучала кодировка? или крякозябры (иеоглифы) на странице способы предотвращения и борьбы с ними." спасибо, попробуюю.
1.файлы страниц и скриптов переведу в UTF8, не проблема.
2.Как поступить с таблицей? таблицу БД надо снести и создать заново или есть способ сменить CP1251 на UTF8 без сноса?
3. самое непонятное для меня как сменить кодировку загружаемых на сайт файлов и папок, в которых они лежат. Подскажите, где почитать про енто дело...

Спустя 1 час, 6 минут, 5 секунд (17.06.2011 - 11:51) ИНСИ написал(а):
Цитата
1.файлы страниц и скриптов переведу в UTF8, не проблема.

Зачем? Можете просто использовать:
mysql_query("SET NAMES CP1251");


Цитата
2.Как поступить с таблицей? таблицу БД надо снести и создать заново или есть способ сменить CP1251 на UTF8 без сноса?

Да, можно. Смотрите в phpMyAdmin, кажется во вкладке Операции->Сравнение...

Цитата
3. самое непонятное для меня как сменить кодировку загружаемых на сайт файлов и папок, в которых они лежат

:) не понятно :)

Цитата
mysql_query("SET NAMES 'utf8'");

Ковычки (одинарные), тут не нужны.

Спустя 1 час, 29 минут, 48 секунд (17.06.2011 - 13:21) Guest написал(а):
Цитата (velbox @ 17.06.2011 - 08:51)

smile.gif не понятно smile.gif


попробую пояснить, что я имею ввиду. Пользователь желает загрузить файл на мой сайт, в соответсвующей форме нажимает кнопу [обзор], выберает файл фото и жмет кнопу [разместить]. Мой скрипт создает на сервере папку, перекидывает туда файл, а в БД добавляет путь к этому файлу. Так вот если путь к файл у пользователя выглядит как-то так: C:/My documents/photo.PGN то все работает, если как-то так: C:/Мои документы/photo.PGN или C:/PHOTO/фотка.PNG, то ни фига не работает.
Как я понимаю это происходит из-за того, что наименование файлов или папок на локальной машине пользователя в одной кодировке, а обрабатывающий процесс размещения файла скрипт и (или) ячейки БД в другой кодировке.
И для того, чтобы все заработало необходимо как-то вычленить путь к файлу на машине пользователя, перекодировоть его в нужную кодировку и только потом запускать скрипт, отрабатывающий размещение файла на серваке. А вот как это сделать - не представляю.

А возможно я вообще заблуждаюсь в методике. Мастера PHP, выручайте.

Спустя 44 минуты, 3 секунды (17.06.2011 - 14:05) ИНСИ написал(а):
Guest путаница. Выложи свой php файл, который загружает файл на сервер

Спустя 5 часов, 18 минут, 23 секунды (17.06.2011 - 19:24) kvy написал(а):
вот тот кусочек скрипта, который ведает выгрузкой файлов, поможет ли он в понимании мей проблемы - не знаю :-(

$dirname = "$login";
$i = 0;
while (is_dir($dirname) == 1)
{ $i = $i + 1;
$dirname = $dirname . $i;
}
mkdir("$dirname");
$uploaddir = "$dirname/";
$temp1=$_FILES['userfile1']['name'];
$uploadfile1 = $uploaddir . $temp1;
move_uploaded_file($_FILES['userfile1']['tmp_name'], $uploadfile1);
$temp2=$_FILES['userfile2']['name'];
$uploadfile2 = $uploaddir . $temp2;
move_uploaded_file($_FILES['userfile2']['tmp_name'], $uploadfile2);
$temp3=$_FILES['userfile3']['name'];
$uploadfile3 = $uploaddir . $temp3;
move_uploaded_file($_FILES['userfile3']['tmp_name'], $uploadfile3);
$temp4=$_FILES['userfile4']['name'];
$uploadfile4 = $uploaddir . $temp4;
move_uploaded_file($_FILES['userfile4']['tmp_name'], $uploadfile4);
$temp5=$_FILES['userfile5']['name'];
$uploadfile5 = $uploaddir . $temp5;
move_uploaded_file($_FILES['userfile5']['tmp_name'], $uploadfile5);
$temp6=$_FILES['userfile6']['name'];
$uploadfile6 = $uploaddir . $temp6;
move_uploaded_file($_FILES['userfile6']['tmp_name'], $uploadfile6);
echo "$uploadfile1, $uploadfile2, $uploadfile3, $uploadfile4, $uploadfile5, $uploadfile6";
$query = "INSERT INTO $table SET img1 = '$uploadfile1', img2 = '$uploadfile2', img3 = '$uploadfile3', img4 = '$uploadfile4', img5 = '$uploadfile5', img6 = '$uploadfile6'";
mysql_query($query) or die(mysql_error());
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.