Помогите с Php и MYSQL

Рейтинг: -2Ответов: 3Опубликовано: 19.05.2011

Здравствуйте я начинающий webmaster я вчера установил denwer и скачал самоучитель по php и у меня к вам 2 маленьких вопроса: 1)Зачем нужен MYSQL ? 2)Почему когда я пишу php файл с любой кодировкой (я уже все кодировки перепробовал получается одго и тоже) с кодом:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Мой первый PHP</title>
</head>
<body>
<?php
error_reporting(E_ALL); 
$mydate=date("Y.m.d"); 
echo "<span style='color: red;'>",$mydate,"</span>"; 
echo"<br>", __file__;
?>
</body>
</html>

и когда загружаю с автоопределением кодировки то получается

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Мой первый PHP</title>
</head>
<body>
<span style='color: red;'>2011.05.19</span><br>Z:\home\rules.ru\www\index.php</body>
</html>

если ставлю кодировку utf-8 то тело документа исправляется а title всё тотже РњРѕР№ первый PHP и браузер игнарирует даже строку

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Помогите исправить и чё делать и ответьте для чего всётаки MYSQL ?

Ответы

▲ 2Принят

Для того чтобы денвер работал в кодировке utf-8 необходимо следующее - в файле webserversusrlocalapacheconfhttpd.conf найти строчку AddDefaultCharset. Если после неё стоит windows-1251, то закоментируем её, и напишем свою. Должно получиться так:

#
# Denwer: default charset.
#
#AddDefaultCharset windows-1251

AddDefaultCharset UTF-8

Теперь перезагрузим денвер, и все должно работать хорошо.

Для того чтобы PHP работал с MySQL тоже в кодировке UTF-8 надо в файле webserversusrlocalmysql5my.cnf

Сделать вот так:

#
# Параметры MySQL-сервера.
#
[mysqld]
# Использовать режим совместимости с клиентами MySQL 3.x и MySQL 4.0.
old-passwords

# Кодировка баз данных по умолчанию.
#default-character-set = cp1251
#init-connect = "set names cp1251"

default-character-set = utf8
init-connect = "set names utf8"
skip-character-set-client-handshake

Здесь мы комментировали кодировку windows-1251 и вместо неё включили utf-8.

▲ 4
  1. MySQL - для хранения данных. В сети полно информации с описаниями и примерами, поэтому не буду переписывать весь интернет сюда. Или задай вопрос конкретнее, отвечу.
  2. Дело в том, что твой редактор сохраняет текст в формате Windows-1251 (или любой другой кодировке, отличной от UTF-8). Сохрани файл в кодировке UTF-8 и будет тебе счастье.
▲ 3

2. Браузер может игнорировать кодировку из мета-тега "Content-Type", если уже была передана кодировка в соответствующем заголовке. Т.е. к примеру, если следующий код сохранить в UTF-8, то он так-же, в зависимости от браузера, может выдавать крякозябры:

<?php header('Content-Type: text/html; charset=windows-1251', true); ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Мой первый PHP</title>
</head>
<body>
Мой первый PHP
</body>
</html>

Не исключено, что денвер настроен так, что всегда выдает Content-Type с кодировкой windows-1251. Соответственно, в этом случае нужно либо настроить денвер, что бы выдавал корректный заголовок, либо явно передавать заголовок: <?php header('Content-Type: text/html; charset=utf-8', true); ?>