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

Форум PHP

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

 

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

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

тема: Проблема с кодировкой
 
 автор: Kicher   (04.11.2006 в 12:25)   письмо автору
 
 

Вчера купил книку: PHP5 практика по созданию web-сайтов.
скопировал и запустил скрипты с диска и проктически на каждой странице выскакивают

"Notice: Undefined variable: ....."
и куча вопросительных знаков вместо текста... пример приложен на фото..

не могли бы вы помочь разобратся с этим?

   
 
 автор: Mpak   (04.11.2006 в 12:39)   письмо автору
 
   для: Kicher   (04.11.2006 в 12:25)
 

Вы прописывали

  mysql_query ("set names 'cp1251'");


И в командной строке меняли кодировку?

   
 
 автор: Kicher   (04.11.2006 в 12:48)   письмо автору
 
   для: Mpak   (04.11.2006 в 12:39)
 

извините...
а куда это прописывать?
нет не прописывал... сейчас поковырялся уже в PhpMyAdmin хоть исчезли вопросительные знаки а вот в браузере попрежнему...

все таблицы в PhpMyAdmin в "cp1251_general_ci"

   
 
 автор: cheops   (04.11.2006 в 13:18)   письмо автору
 
   для: Kicher   (04.11.2006 в 12:48)
 

Этот запрос поместите в конец файла config.php.

   
 
 автор: Kicher   (04.11.2006 в 13:23)   письмо автору
 
   для: cheops   (04.11.2006 в 13:18)
 

О! Большое спасибо! все заработало!
а по чему так.. в базе нормально а вывод не нормальный?

   
 
 автор: cheops   (04.11.2006 в 13:27)   письмо автору
 
   для: Kicher   (04.11.2006 в 13:23)
 

Дело в том, что с момента написания книги, сменилась концепция управления кодировок в MySQL, теперь можно настраивать кодировку соединения. Скажем хранится у вас всё в кодировке cp1251, а пользователь вводит данные в кодировке koi8-r, вы можете перекодировать данные "на лету" средствами MySQL - раньше так было нельзя. Расплата за такое удобство - нужно явно указывать в какой кодировке вы собиратесь передавать данные MySQL. Если этого не указать - данные будут искажены - русский текст превратится в знаки вопросов. Подробнее об кодировках в MySQL версии выше 4.1 можно почитать в статье

   
 
 автор: Kicher   (04.11.2006 в 13:41)   письмо автору
 
   для: cheops   (04.11.2006 в 13:27)
 

Большое спасибо!

   
 
 автор: cheops   (04.11.2006 в 12:49)   письмо автору
 
   для: Kicher   (04.11.2006 в 12:25)
 

Notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
?>

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

   
 
 автор: Kicher   (04.11.2006 в 12:56)   письмо автору
 
   для: cheops   (04.11.2006 в 12:49)
 

с нотайсом все понятно.. там просто переменная не задана во многих местах... вот кодировка.... (((
странно с базе по русски а выводит знаки вопроса...

   
 
 автор: Kicher   (22.11.2006 в 13:03)   письмо автору
 
   для: Kicher   (04.11.2006 в 12:56)
 

а как быть с форумом LiteForum 2.0.0?
скопировал, изменил уровень ошибок, если с сайтом добавив строчку mysql_query ("set names 'cp1251'"); в конец все пере кодируется то с форумом так не получается...

   
 
 автор: cheops   (22.11.2006 в 13:22)   письмо автору
 
   для: Kicher   (22.11.2006 в 13:03)
 

Необходимо добавить
mysql_query ("set names 'cp1251'");

в inc-файл системы администрирования, а лучше загрузить более новую версию форума из раздела downloads http://www.softtime.ru/info/liteforum.php.

   
Rambler's Top100
вверх

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