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

Форум MySQL

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

 

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

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

тема: Новостной скрипт (проблема с работой)
 
 автор: Zard   (07.06.2007 в 23:51)   письмо автору
 
 

Установил скрипт, все работает, НО, сбой, как мне кажется, кодировки при добавлении новости, т.е. добавляю текст на русском языке все заменяется на "?". Вот пример - http://www.sportkat.iplot.ru/

   
 
 автор: mr Bin   (08.06.2007 в 00:06)   письмо автору
 
   для: Zard   (07.06.2007 в 23:51)
 

в бд тоже всё в знаках вопроса?

   
 
 автор: Zard   (08.06.2007 в 01:27)   письмо автору
 
   для: mr Bin   (08.06.2007 в 00:06)
 

Да, и там, что-то с заполнением данных в бд.

   
 
 автор: cheops   (08.06.2007 в 00:23)   письмо автору
 
   для: Zard   (07.06.2007 в 23:51)
 

Сразу после установки соединения с СУБД MySQL выполните запрос
<?php
  mysql_query
("SET NAMES cp1251");
?>

   
 
 автор: Zard   (08.06.2007 в 01:28)   письмо автору
 
   для: cheops   (08.06.2007 в 00:23)
 

Это где прописывать надо? Не понял, можно поточнее.

   
 
 автор: mr Bin   (08.06.2007 в 01:34)   письмо автору
 
   для: Zard   (08.06.2007 в 01:28)
 

Найдите место в скрипте, где происходит соединение с Базой Данных.
Возможно Вы вносили там изменения, если конечно скрипт не имеет инсталлятора для удобства..
Возможно это находится в файле config.php

   
 
 автор: Zard   (08.06.2007 в 02:31)   письмо автору
 
   для: mr Bin   (08.06.2007 в 01:34)
 

Изменения не вносил, нашел в config (как Вы и сказали) соединение с Базой Данных, но, там уже прописано, что если версия mysql > 4.1, то использовать cp1251(mysql_query("SET NAMES cp1251"); В моем случае версия mysql 5.0.32. Есть еще варианты решения этой проблемы?!

   
 
 автор: victoor   (08.06.2007 в 02:34)   письмо автору
 
   для: Zard   (08.06.2007 в 02:31)
 

э... А, может, страничка в интернете в другой кодировке выводится? Чисто как вариант...

   
 
 автор: cheops   (08.06.2007 в 02:36)   письмо автору
 
   для: Zard   (08.06.2007 в 02:31)
 

Просто вставьте рядом строку
<?php
  
@mysql_query("SET NAMES cp1251");
?>

хуже не будет.

   
 
 автор: Zard   (08.06.2007 в 02:52)   письмо автору
 
   для: cheops   (08.06.2007 в 02:36)
 

Вот о чем говорил:

  $ver = $major.".".$minor;
  if((float)$ver >= 4.1)
  {
    mysql_query("SET NAMES 'cp1251'");
  }

Вот что стоит, если ставить " @mysql_query("SET NAMES cp1251");" ниже функции, то ничего не меняется, тем более с "<?php" - тогда скрипт выдает ошибку...

   
 
 автор: mr Bin   (08.06.2007 в 04:59)   письмо автору
 
   для: Zard   (08.06.2007 в 02:52)
 

Ну естественно, что нужно без

<?php
- это Вам как образец привели.

Попробуйте просто подставить @ перед mysql_query("SET NAMES 'cp1251'"); в скрипте.

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

   
 
 автор: Zard   (08.06.2007 в 12:38)   письмо автору
 
   для: mr Bin   (08.06.2007 в 04:59)
 

Вывод на странице происходит нормально, но запись в бд криво, именно в бд все в вопросах.

   
 
 автор: Trianon   (08.06.2007 в 09:26)   письмо автору
 
   для: Zard   (08.06.2007 в 02:52)
 

Это означает, что скрипт соединения с БД у Вас изначально был оформлен совершенно корректно.
Ищите источник проблемы раньше.

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

   
 
 автор: Zard   (08.06.2007 в 12:46)   письмо автору
 
   для: Trianon   (08.06.2007 в 09:26)
 

Попробывал - сделал новость, она вся в вопросы... залез в бд, там тоже все в вопросах, поменял на нормальный текст и нажал сохранить, все снова в ?. Тут дело в mysql 100%, сегодня проверю скрипт на другом хостинге.

Нет, и на другом хостинге такая же проблема.

В бд где текст заметил - Сравнение: latin1_swedish_ci

   
 
 автор: Trianon   (08.06.2007 в 14:22)   письмо автору
 
   для: Zard   (08.06.2007 в 12:46)
 

Интересно, Вы читаете, что Вам пишут?
Возможно, забыли указать кодовую страницу после создания БД.


Естественно, если у базы стоит кодировка latin1 , то никаких русских букв в её таблицы положить не получится.

Исполняем

ALTER DATABASE `mybase` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci

после этого (если не помогло) удаляем и заново создаем все свои таблицы.

   
 
 автор: Zard   (08.06.2007 в 14:50)   письмо автору
 
   для: Trianon   (08.06.2007 в 14:22)
 

Все, сделал. Я читаю, просто не сразу понял куда что добавлять. Спасибо!

   
Rambler's Top100
вверх

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