И опять проблемы с кодировкой....
Пишу некий сайт на PHP, с проблемами связанными с кодировкой пару раз сталкивался, но находил решения по их устранению, но на сей раз просто не знаю что уже делать... Написал небольшую часть движка сайта, начал делать на сайте аутентификацию, а вышло вот что:
На сколько я понимаю проблема может быть вызвана тремя файлами, это index.php, файл с шаблоном сайта, файл конфигурации...
index.php:
Код:
<?php
header ("Content-type: text/html; charset=utf-8");
require "engine.php";
//подключение шаблонизатора
require "tpl_f.php";
//Подключение файла информации о сайте
require "modules/info.php";
require "modules/menu.php";
require "modules/text.php";
//Открытие шаблона
$tpl->get_tpl('tpl/default/main.tpl');
//Установка переменных шаблона
$tpl->set_value('headers',$headers);
$tpl->set_value('headers_articles',$headers_articles);
$tpl->set_value('title_m',$title_m);
$tpl->set_value('text',$text);
$tpl->set_value('datetime',$datetime);
$tpl->set_value('lasts', $last);
$tpl->set_value('menu', $menu);
//Парсинг
$tpl->tpl_parse();
//Вывод html
echo $tpl->html;
?>
header ("Content-type: text/html; charset=utf-8");
require "engine.php";
//подключение шаблонизатора
require "tpl_f.php";
//Подключение файла информации о сайте
require "modules/info.php";
require "modules/menu.php";
require "modules/text.php";
//Открытие шаблона
$tpl->get_tpl('tpl/default/main.tpl');
//Установка переменных шаблона
$tpl->set_value('headers',$headers);
$tpl->set_value('headers_articles',$headers_articles);
$tpl->set_value('title_m',$title_m);
$tpl->set_value('text',$text);
$tpl->set_value('datetime',$datetime);
$tpl->set_value('lasts', $last);
$tpl->set_value('menu', $menu);
//Парсинг
$tpl->tpl_parse();
//Вывод html
echo $tpl->html;
?>
Шаблон:
[HTML]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
{headers}
</head>
<body>
<div align="center">
<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr bgcolor="#E6E6FA">
<td width="200">
<p align="center">
<form action="index.php" method="post" enctype="text/plain">
<p align="left">Логин: <input type="text" name="login" /></p>
<p align="left">Пароль: <input type="password" name="password" /></p>
<p align="left"><input type="submit" value="Войти" /></p>
</form>
</p>
<p align="center">{menu}</p>
</td>
<td valign="top">
<p align="center">{text}</p>
</td>
</tr>
<tr bgcolor="#E6E6FA">
<td colspan="2">
Cell
</td>
</tr>
</table>
</div>
</body>
</html>[/HTML]
Файл конфигурации:
Код:
<?php
$conf = array(
'name_adress' => 'localhost/fifa',
'title' => 'Фифа',
'description' => 'Фифа описание',
'keywords' => 'Фифа ключевые слова',
'author' => 'Mikrob',
'koding' => 'utf-8',
'koding_b' => 'utf8',
);
?>
$conf = array(
'name_adress' => 'localhost/fifa',
'title' => 'Фифа',
'description' => 'Фифа описание',
'keywords' => 'Фифа ключевые слова',
'author' => 'Mikrob',
'koding' => 'utf-8',
'koding_b' => 'utf8',
);
?>
Файл какой отвечает за {headers}:
Код:
<?php
require "./config.php";
$headers = '<title>'.$conf["title"].'</title>
<meta name="author" content="'.$conf["author"].'" >
<meta name="description" content="'.$conf["description"].'" >
<meta name="keywords" content="'.$conf["keywords"].'" >
<meta http-equiv="content-type" content="text/html; charset='.$conf["koding"].'" >
<meta http-equiv="Content-Script-Type" content="text/javascript" >
<meta http-equiv="Content-Style-Type" content="text/css" >';
?>
require "./config.php";
$headers = '<title>'.$conf["title"].'</title>
<meta name="author" content="'.$conf["author"].'" >
<meta name="description" content="'.$conf["description"].'" >
<meta name="keywords" content="'.$conf["keywords"].'" >
<meta http-equiv="content-type" content="text/html; charset='.$conf["koding"].'" >
<meta http-equiv="Content-Script-Type" content="text/javascript" >
<meta http-equiv="Content-Style-Type" content="text/css" >';
?>
Помогите пожалуйста, уже не знаю что можно сделать с этими кракозябликами(((
А кодировки самих файлов - UTF8?
Каких файлов?) Я наверное не так описал что то.. я выложил код тех файлов в которых по идее и есть проблема... Если на странице index.php я меняю кодировку с utf-8 на cp-1251, то всё что было кракозябликами, становится нормальными русскими буквами, а то что было нормально превращается соответственно в кракозяблики...
Цитата:
это index.php, файл с шаблоном сайта, файл конфигурации
Судя из последнего поста, я понял, что у вас, допустим, файл с конфигом в utf8 кодировке создан, а шаблон, например, в cp1251 (windows-1251). От того и крякозябры. Так как браузеру указываете, что документ в utf8, а отдаете шаблон в cp1251 кодировке.
Извиняюсь за глупый вопрос, а как в файлу шаблона .tpl кодировку задать?
Ну или в PSPad там тоже есть, щас по памяти не скажу. Короче, в любом норм.редакторе есть, надо поискать лишь (ну или почитать документацию)
Всем файлам задал кодировку utf-8, но проблема не решилась....