Перейти к содержимому


Партнерская программа Kredov

  • Закрытая тема Тема закрыта

Не запускается PHPMyAdmin

#21 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8
0

Отправлено 09 Декабрь 2010 - 09:26

Tori, вообщем вся проблема в том, что данные, лежащие в базах данных имеют свою кодировку, каждый файл исполняемого скрипта PHP или любой файл HTML имеет свою кодировку и естественно браузер отображает данные в определенной кодировке.
Обычно данные в БД хранят в той же кодировке, в которой пишут скрипт.

И так, если ваш скрипт с кодировкой windows-1251 (cp1251)
1) Все файлы PHP, HTML должны быть в формате ASCII (обычно данный формат идёт по умолчанию)
2) В заголовках, между <header></header> там где это нужно на страницах указать:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
3) Базу данных нужно создавать в кодировке cp1251 (это желательно, но не критично, ибо кодировку данных можно локализировать)

Если ваш скрипт с кодировкой UTF-8 (utf-8)
1) Все файлы PHP, HTML должны быть в формате utf-8 без BOM
2) В заголовках, между <header></header> там где это нужно на страницах указать:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
3) Базу данных нужно создавать в кодировке utf8 (это желательно, но не критично, ибо кодировку данных можно локализировать)

Если кодировка ресурса не совпадает с кодировкой хранящихся в базе данных (например: сайт в windows-1251, а данные в БД в utf8) нужно применять локализацию:

Начиная с версии 4.1 в СУБД MySQL внедрена новая система кодировок и сортировок. При использовании кодировки Windows-1251, перед выполнением SQL-инструкций необходимо настроить кодировку соединения при помощи операторов:

SET character_set_client='cp1251';
SET character_set_results='cp1251';
SET character_set_connection='cp1251';

Эти три оператора эквивалентны вызову одного оператора:
SET NAMES 'cp1251'

Переменная character_set_client устанавливает кодировку данных отправляемых от клиента, переменная character_set_results устанавливает кодировку данных отправляемых клиенту, переменная character_set_connection устанавливает кодировку, в которую преобразуется информация пришедшая от клиента, перед выполнением запроса на сервере.

При использовании Юникода UTF-8 этот оператор выглядит следующим образом:
SET NAMES 'utf8'

Т.о. вы объясняете mysql серверу, в какой кодировке ему надо заносить в базу и отдавать данные из БД.

Вообщем я установила XAMMP, там MyAdmin работает, т.к. времени сейчас разбираться почему не работает денвер совсем нет, на следующей недели лабу надо сдавать. Но там проблемма в том, что при импорте базы вместо русского текста вопросики. Должно быть это, как вы говорили в начале темы, из-за кодировки, но как ее поменять чтобы отображался русский текст я не знаю. И еще когда я вручную изменяю кодировку таблиц на cp1251 он в MyAdmin отображает текст нормально, а в браузере опять вопросики выводит?!

Скорее всего, ваши эскпортируемые данные ранее были в кодировке cp1251, а сейчас при импорте вы указываете кодировку utf8 (точнее она указана по умолчанию).
Вам просто нужно:
1) Если у вас в скрипте между <header></header> не указан meta-тег с содержимым:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
То указать его.

2) После соединения с сервером MySQL и выбора базы данных в PHP-скрипте нужно тут же провести локализацию БД:
$connect = mysql_connect("host", "login", "password"); // соединяемся с MySQL
mysql_select_db("database", $connect); // Выбираем БД
mysql_query("SET NAMES 'cp1251'"); // локализуем БД под кодировку скрипта windows-1251

  • 0

#22 Tori

Tori
    Topic Starter
  • Пользователь
  • 35 сообщений
  • Репутация: 0

Отправлено 09 Декабрь 2010 - 16:37

ZiTosS, Большое прибольщое спасибо за помощь :)
Вставила в файлы строчки
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
mysql_query("SET NAMES 'cp1251'"); // локализуем БД под кодировку скрипта windows-1251
и все заработало ;)

А вы не знаете как обновить базу данных на сервере кафедры в институте? Как к ней подключиться? Логин и пароль известны.
  • 0

#23 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 09 Декабрь 2010 - 22:15

Tori,
1) Если в настройках сервера MySQL вашей кафедры в файле my.cnf(my.ini) установлен параметр:
bind-address=127.0.0.1
То подключиться удаленно и общаться с сервером вам не удастся, т.к. в данном случае MySQL-сервер будет принимать обращения только с локального компьютера, на котором установлен данный сервер. Обычно этот параметр присутствует и по умолчанию настроен именно так.

А так, можно подключаться к MySQL по SSH, только нужно поставить SSH-клиент (точно не скажу, но вроде как на обе машины).
Я удаленно с серверами не общался, поэтому методы данные не опробовал, могу только то, что знаю говорить.
Вариант установки удаленного подключения к MySQL, но тут понадобится доступ к компьютеру кафедры, чтобы добавить новых пользователей (как я понимаю, вам этого сделать не дадут).
  • 0

#24 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 10 Декабрь 2010 - 23:11

А в чем сложность удаленного доступа?
  • 0

#25 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 11 Декабрь 2010 - 22:35

gaaarfild, в том, что:
1) Удаленный сервак нужно настроить должным образом, дать доступ к удаленному подключению (помимо локального компа)
2) Должны быть определены учетные записи, которым будет дан доступ с удаленного компа (IP, не 127.0.0.1)

Если есть SSH и сервак юниксовский, а вы сидите под Linux - то проще всего на серваке установить SSH-клиент и создать пользователя SSH, подключаться и админить из командной строки. Как удаленное управление компом :)
  • 0

#26 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 12 Декабрь 2010 - 02:11

Через windows тоже можно подключится к UNIX системе по SSH. PUTTY.
Я к тому, что не вижу здесь проблемы. :)
  • 0

#27 Tori

Tori
    Topic Starter
  • Пользователь
  • 35 сообщений
  • Репутация: 0

Отправлено 12 Декабрь 2010 - 10:39

Подключилась через MySQL-Front, правда он сначало выдает ошубку, но после того как раз 20 нажмешь OK, он подключается к моей базе:)
  • 0

#28 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 12 Декабрь 2010 - 12:16

Tori, поздравляю :) А что хоть за ошибка?
  • 0

#29 Tori

Tori
    Topic Starter
  • Пользователь
  • 35 сообщений
  • Репутация: 0

Отправлено 12 Декабрь 2010 - 17:28

Он там базы перебирал и писал что у меня нет доступа пока не дошел до моей.
Когда запустила второй уже сразу зашел в мою базу и ничего не спрашивал :)
  • 0

#30 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 12 Декабрь 2010 - 18:29

Tori, тему можно закрывать?
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru