Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кодировка или что?
 
 автор: tauruz   (20.11.2005 в 22:30)   письмо автору
 
 

купил книгу по PHP
там на диске был сайт в том числе и база MYSQL
сайт залил в localhost и базу как пологается.
Запускаю сайт, а там вместо нормальных сылок те что из MySQL
не буквы а вопросы!!! Помогите чайнику!!!

????? ????? ???? ????
??????? ??????
??????????? ????????, ?? ??????? ????? ???????? ??????.
????????? ? ??????? ?????????????????

   
 
 автор: goddamn   (20.11.2005 в 23:38)   письмо автору
 
   для: tauruz   (20.11.2005 в 22:30)
 

код в студию.
посмотри код загруженной страницы, там должна быть строчка типа <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> - что там в charset стоит ?

   
 
 автор: tauruz   (20.11.2005 в 23:50)   письмо автору
 
   для: goddamn   (20.11.2005 в 23:38)
 

windows-1251

   
 
 автор: tauruz   (21.11.2005 в 00:10)   письмо автору
 
   для: goddamn   (20.11.2005 в 23:38)
 

Вот весь код!!!

<br />
<b>Notice</b>:  Use of undefined constant HTTP_X_FORWARDED_FOR - assumed 'HTTP_X_FORWARDED_FOR' in <b>z:\home\localhost\www\counter\count.php</b> on line <b>14</b><br />
<br />
<b>Notice</b>:  Undefined variable: PHP_SELF in <b>z:\home\localhost\www\counter\count.php</b> on line <b>26</b><br />
<br />
<b>Notice</b>:  Undefined variable: srch in <b>z:\home\localhost\www\counter\count.php</b> on line <b>81</b><br />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta HTTP-EQUIV="Expires" CONTENT="0">
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<script language="javascript">
    function showpicture(image, title){
        window.open('../util/showpicture.php?image='+image+'&title='+title,'','Toolbar=0,Location=0,Directories=0,Status=0,Menubar=0,Scrollbars=0,Resizable=0,Width=650,Height=500,left=150, top=150');
    }
    
</script>
<title>Статьи</title>
<meta name="description" content='<br />
<b>Notice</b>:  Undefined variable: description in <b>z:\home\localhost\www\util\top.php</b> on line <b>28</b><br />
'>
<meta name="keywords" content='<br />
<b>Notice</b>:  Undefined variable: keywords in <b>z:\home\localhost\www\util\top.php</b> on line <b>29</b><br />
'>
<link rel="StyleSheet" type="text/css" href="../util/site.css">
<link rel="StyleSheet" type="text/css" href="../util/art.css">
</head>
<body leftmargin="0" marginheight="0" marginwidth="0" rightmargin="0" topmargin="0" bottommargin="0">
<table width="100%" height="100%">
<tr>
    <td colspan=3>
      <h2 style="margin:20px ;color: #8A0000">Сайт для книги "Профессиональный сайт на PHP 5"</h2>
    </td>
</tr>
<tr>
  <td colspan=3>
    <table border=1 align="center" width="100%">
     <tr align="center">
        <td><a href='../article/index.php'>Статьи</a></td>    
        <td><a href='../catalog/index.php'>Каталог</a></td>
        <td><a href='../catalog/searchform.php'>Поиск в каталоге</a></td>        
        <td><a href='../contacts/index.php'>Контакты</a></td>
        <td><a href='../poll/index.php'>Голосование</a></td>   
        <td><a href='../guestbook/index.php'>Гостевая книга</a></td>   
        <td><a href='../photo/index.php'>Фотогалерея</a></td>   
        <td><a href='../mail/index.php'>Отправить письмо</a></td> 
      </tr>
    </table>       
  </td>
</tr>  
<tr valign="top"><td width=10%>&nbsp;</td><td height="100%"><br>         <h1 class=artnamepage>Статьи</h1> 
      <ol><li><a href=http://localhost/article/index.php?id_page=1>????? ????? ???? ????</a><li>
<a href=http://localhost/article/index.php?id_page=2>??????? ??????</a><li>
<a href=http://localhost/article/index.php?id_page=3>??????????? ????????, ?? ??????? ????? ???????? ??????.</a>
<li><a href=http://localhost/article/index.php?id_page=5>????????? ? ??????? ?????????????????</a></ol>
</td><td width=20%>&nbsp;</td></tr>
<tr>
  <td colspan=3><br><br>
    <table border=1 align="center" width="100%">
     <tr align="center">
        <td><a href='../article/index.php'>Статьи</a></td>    
        <td><a href='../catalog/index.php'>Каталог</a></td>
        <td><a href='../catalog/searchform.php'>Поиск в каталоге</a></td>        
        <td><a href='../contacts/index.php'>Контакты</a></td>
        <td><a href='../poll/index.php'>Голосование</a></td>   
        <td><a href='../guestbook/index.php'>Гостевая книга</a></td>   
        <td><a href='../photo/index.php'>Фотогалерея</a></td>   
        <td><a href='../mail/index.php'>Отправить письмо</a></td> 
      </tr>
    </table>       
  </td>
</tr>  
</table>
</body>
</html>

   
 
 автор: cheops   (21.11.2005 в 13:12)   письмо автору
 
   для: tauruz   (20.11.2005 в 22:30)
 

Перед занесением информации на русском языке в базу данных MySQL необходимо выполнить запросы, описанные в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=8208

   
 
 автор: NikVA   (23.11.2005 в 07:30)   письмо автору
 
   для: cheops   (21.11.2005 в 13:12)
 

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

   
 
 автор: cheops   (23.11.2005 в 12:45)   письмо автору
 
   для: NikVA   (23.11.2005 в 07:30)
 

Если русский текст введён без предварительной настройки кодировок - он уже испорчен - его следует ввести по-новой.

   
 
 автор: NikVA   (23.11.2005 в 12:50)   письмо автору
 
   для: cheops   (23.11.2005 в 12:45)
 

А как настороить кодировку?. Есть книга "Практика создания web-сайтов" там пример базы, как его загрузит? какие настройки надо выставить MYSQL? я пробовал разные кодировки. Текс все равно пишет ???????, делаю изменить все равно отображает ????? англиский нормально. где смотреть? подскажите плиз.

   
 
 автор: cheops   (23.11.2005 в 12:54)   письмо автору
 
   для: NikVA   (23.11.2005 в 12:50)
 

Так как это описывается в теме http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=8208 - т.е. после каждого соединения с базой данных необходимо выполнить указанные там запросы.

   
 
 автор: NikVA   (29.11.2005 в 12:33)   письмо автору
 
   для: cheops   (23.11.2005 в 12:54)
 

Все так как там описано сделал не помогло, посмотрел в базе данных все садержимое пишет на русском. Измения на сайте название на любое слово на русском в базу записывается ????????? если пишу на англиском все нормально, да в базе на премую пишу текст на русском все нормально отображается в phpMyAdmin-2.6.4 а на странице ??????. Подскажите где смотреть, что сделать.

   
 
 автор: cheops   (29.11.2005 в 12:53)   письмо автору
 
   для: NikVA   (29.11.2005 в 12:33)
 

А перед выводом на страницу вы указанные запросы производите?

   
 
 автор: NikVA   (29.11.2005 в 13:37)   письмо автору
 
   для: cheops   (29.11.2005 в 12:53)
 

Ну я поставил эти запросы в config где идет подключение к базе

<?php
  
///////////////////////////////////////////////////
  // Web-приложения для книги "Профессиональный сайт на PHP 5"
  // 2004 (C) IT-студия SoftTime (http://www.softtime.ru)
  // Симдянов И.В. (simdyanov@softtime.ru)
  // Голышев С.В. (glsv@softtime.ru)
  // Кузнецов М.В. (kuznetsov@softtime.ru)
  ///////////////////////////////////////////////////
  
$dblocation "localhost";
  
$dbname "proba";
  
$dbuser "root";
  
$dbpasswd "";

  
// Директивы гостевой книги
  // Число выводимых сообщений на странице
  
$pnumber 10;
  
// Отправлять письмо на e-mail при добавлении нового сообщения
  // в гостевую книгу? Для включения данного сервиса исправите на true
  
$sendmail false;
  
// e-mail на который следует отправлять сообщение
  
$valmail "mymail@mail.ru";
  
// Устанавливаем соединение с базой данных
  
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
//
  
mysql_query("set character_set_client='cpl1251'");
  
mysql_query("set character_set_connection='cpl1251'");
  
mysql_query("set character_set_database='cpl1251'");
  
mysql_query("set character_set_results='cpl1251'");
  
mysql_query("set character_set_server='cpl1251'");
  
mysql_query("set collation_connection='cpl1251_general_ci'");
//
  
if (!$dbcnx)
  {
    echo( 
"<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
    exit();
  }

  if (! @
mysql_select_db($dbname,$dbcnx) )
  {
    echo( 
"<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );
    exit();
  }
  
// Небольшая вспомогательная функция, которая выводит сообщение об ошибке
  // в случае ошибки запроса к базе данных
  
function puterror($message)
  {
    echo(
"<p>$message</p>");
    exit();
  }
?>

Ну вот что делаю не так

   
 
 автор: cheops   (29.11.2005 в 21:47)   письмо автору
 
   для: NikVA   (29.11.2005 в 13:37)
 

Должно работать... а это версия MySQL какая (до третьего знака)? Вы используете полную версию или урезанную (essential)?

   
 
 автор: NikVA   (30.11.2005 в 07:14)   письмо автору
 
   для: cheops   (29.11.2005 в 21:47)
 

mysql-4.1.15-win32 размер 40 мб а как узнать урезаная она или нет?

   
 
 автор: cheops   (30.11.2005 в 15:23)   письмо автору
 
   для: NikVA   (30.11.2005 в 07:14)
 

Нет это не урезанная версия... Узнать можно при загрузке с сайта dev.mysql.com - там пишется essential это или нет...
Выполните запрос
SHOW CHARACTER SET

у вас имеются русские кодировки?

   
 
 автор: NikVA   (01.12.2005 в 07:43)   письмо автору
 
   для: cheops   (30.11.2005 в 15:23)
 

Выполнил запрос выдало таблицу в таблице

Charset     Description             Default collation     Maxlen 
big5    Big5 Traditional Chinese     big5_chinese_ci     2
dec8    DEC West European           dec8_swedish_ci     1
cp850    DOS West European           cp850_general_ci     1
hp8    HP West European           hp8_english_ci     1
koi8r    KOI8-R Relcom Russian    koi8r_general_ci     1
latin1    cp1252 West European      latin1_swedish_ci     1
latin2    ISO 8859-2 Central European    latin2_general_ci    1
.....                   ........................................               
cp1251    Windows Cyrillic    cp1251_general_ci     1
geostd8    GEOSTD8 Georgian    geostd8_general_ci     1
..................       ........................................
cp932    SJIS for Windows Japanese    cp932_japanese_ci    2

   
 
 автор: NikVA   (30.11.2005 в 13:00)   письмо автору
 
   для: cheops   (29.11.2005 в 21:47)
 

Я попробовал узнать кодировку и добавил

$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); 
// 
  mysql_query("set character_set_client='cpl1251'"); 
  mysql_query("set character_set_connection='cpl1251'"); 
  mysql_query("set character_set_database='cpl1251'"); 
  mysql_query("set character_set_results='cpl1251'"); 
  mysql_query("set character_set_server='cpl1251'"); 
  mysql_query("set collation_connection='cpl1251_general_ci'"); 
// 

$charset = mysql_client_encoding($dbcnx); 
printf ("Кодировка %s\n", $charset); 

В результате у меня получилось (Кодировка Latin1_swedish_ci), от куда он берет не знаю везде прописал 1251, Как исправить помогите плиз.

   
 
 автор: NikVA   (01.12.2005 в 15:23)   письмо автору
 
   для: NikVA   (30.11.2005 в 13:00)
 

Все сделал спасибо кто откликнулся сделал вот так

$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); 
// 
  mysql_query("set character_set_client='koi8r'"); 
  mysql_query("set character_set_connection='koi8r'"); 
  mysql_query("set character_set_database='koi8r'"); 
  mysql_query("set character_set_results='koi8r'"); 
  mysql_query("set character_set_server='koi8r'"); 
  mysql_query("set collation_connection='koi8r_general_ci'"); 
// 

Жалко что на сайте нет Базы знаний, чтобы такие как я на грабли на одни и те же не наступали.
Да у меня вопрос все таки что выводит вот это, какую кадировку и откуда она берет данные

$charset = mysql_client_encoding($dbcnx); 
printf ("Кодировка %s\n", $charset); 

   
 
 автор: cheops   (01.12.2005 в 23:46)   письмо автору
 
   для: NikVA   (01.12.2005 в 15:23)
 

>Жалко что на сайте нет Базы знаний, чтобы такие как
>я на грабли на одни и те же не наступали.
Просто если вопрос по кодировке возникнет у другого посетителя и не сработает cp1251, я или другой участник направит человека на эту тему с советом попробовать koi8r.

>Да у меня вопрос все таки что выводит вот это, какую
>кадировку и откуда она берет данные
>

>$charset = mysql_client_encoding($dbcnx); 
>

Эта функция извлекает кодировку текущего соеденения, которую сообщает сервер или которую устанавливает клиент при помощи запроса "set character_set_client".

   
 
 автор: NikVA   (02.12.2005 в 07:29)   письмо автору
 
   для: cheops   (01.12.2005 в 23:46)
 

Странно я сечас установил set character_set_client=koi8r. а у меня выводит
Latin1_swedish_ci

   
 
 автор: Route   (04.12.2005 в 13:22)   письмо автору
 
   для: NikVA   (02.12.2005 в 07:29)
 

А как вы вообше их устанавливаете? У меня таже проблемма. Выводит вопросы вместо букв русских. mysql последний самый.

   
 
 автор: slamor   (04.12.2005 в 20:03)   письмо автору
 
   для: Route   (04.12.2005 в 13:22)
 

Вот например кусок кода:

$ps_link = mysql_connect( PS_HOST, PS_USER, PS_PWD );

// Смотрим, что установлено до изменения:
$charset = mysql_client_encoding($ps_link);
echo $charset.'<br>';

mysql_query("set character_set_client='koi8r'");

// Смотрим, что установлено после изменения:
$charset = mysql_client_encoding($ps_link);
echo $charset.'<br>';


Но вот, что действительно не понятно:
ни чего не меняется. У меня к примеру и до и после выдаёт
latin1
latin1

Как сделать, чтоб $charset = mysql_client_encoding($ps_link); выдало, что-то другое остаётся непонятно.

   
 
 автор: cheops   (05.12.2005 в 02:47)   письмо автору
 
   для: slamor   (04.12.2005 в 20:03)
 

Добавлю ко всему выше сказанном ссылку http://drupal.kiev1.org/node/15 - возможно это поможет решить проблему - там рекомендуется установить имя SET NAME.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования