DLE. Кривая кодировка.

12
B
На сайте с 13.07.2012
Offline
16
3397

Есть сайт(DLE) на страницах прописана кодировка UTF-8.

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

Подключил к статической странице свой скрипт.

{include file="/engine/modules/script.php"}

Скрипт кстати то же использует кодировку UTF-8.

header('Content-Type: text/html; charset=UTF-8');

Теперь весь текст на странице куда подключил скрипт превратился в крякозябры(������). Но тексты из скрипта отображаются нормально.

Как решить проблему?

maximka77
На сайте с 15.10.2011
Offline
245
#1

Проверьте какая кодировка стоит на хостинге

- Базы чатов и каналов Телеграм ( https://base-top.ru/ ) - Недорогие ссылки с форумов (https://cutt.ly/swQDFZWx)
V
На сайте с 02.09.2012
Offline
76
#2

Кодировка базы походу вин 1251,поставьте утф8

Белая датинг партнерка (http://u.to/6nnSAw) Сайт знакомств (http://hochulove.ru/)
TaP3aH
На сайте с 13.12.2006
Offline
66
#3

А в БД какая кодировка?

B
На сайте с 13.07.2012
Offline
16
#4
maximka77:
Проверьте какая кодировка стоит на хостинге

На хостинге по умолчанию стоит UTF-8.

В коpневой дирректории сайта есть файл .HTACCESS и там прописано: AddDefaultCharset windows-1251

voltamper:
Кодировка базы походу вин 1251,поставьте утф8

У меня вообще DLE в кодировке windows-1251. Поставлю UTF-8 и получится опять крякозябры.

TaP3aH:
А в БД какая кодировка?

windows-1251.

мой скрипт не использует БД.

siv1987
На сайте с 02.04.2009
Offline
427
#5

Сайт и все остальное очевидно работает не utf-8

Если сайт не utf-8, лучше свой скрипт перекодировать под cp1251

B
На сайте с 13.07.2012
Offline
16
#6
siv1987:
Сайт и все остальное очевидно работает не utf-8
Если сайт не utf-8, лучше свой скрипт перекодировать под cp1251

Вот код скрипта:

<?php


header('Content-Type: text/html; charset=utf-8');
session_start();

$txt = array(
'refer' => array(
"9" => 'выберите из списка',
"10" => 'Английский',
"11" => 'Немецкий',
"12" => 'Французский',
"13" => 'Испанский',
),
'vozrast' => array(
"9" => 'выберите из списка',
"10" => 'Взрослый',
"11" => 'Дошкольник',
"12" => 'Младшие классы',
"13" => 'Старшие классы',
),
'clock' => array(
"9" => 'выберите из списка',
"10" => 'с 9-12',
"11" => 'с 12-15',
"12" => 'с 16-17.30',
"13" => 'с 17.30-19',
"14" => 'с 19-21',
),
'dni' => array(
"9" => 'выберите из списка',
"10" => 'Пн',
"11" => 'Вт',
"12" => 'Ср',
"13" => 'Чт',
"14" => 'Пт',
"15" => 'Сб',
"16" => 'Вс',
),
'dni2' => array(
"9" => 'выберите из списка',
"10" => 'Пн',
"11" => 'Вт',
"12" => 'Ср',
"13" => 'Чт',
"14" => 'Пт',
"15" => 'Сб',
"16" => 'Вс',
),
'uroven' => array(
"9" => 'выберите из списка',
"10" => 'Starter',
"11" => 'Elementary',
"12" => 'Pre-Intermediate',
"13" => 'Intermediate',
"14" => 'Upper Intermediate',
"15" => 'Advanced',
),
);

$fields = array(
'name' => 'ФИО',
'refer' => 'Язык',
'vozrast' => 'Возраст',
'clock' => 'Удобное время занятий',
'dni' => 'Удобные дни (1)',
'dni2' => 'Удобные дни (2)',
'uroven' => 'Примерный уровень',
'phone' => 'Контактный телефон',
'clock' => 'Удобное время занятий',
'clock' => 'Удобное время занятий',
);

$errors = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_POST['sec_code'] != $_SESSION['secret_code']) {
$errors[] = 'captcha';
}
if (empty($_POST['name'])) {
$errors[] = 'name';
}
if (empty($_POST['phone'])) {
$errors[] = 'phone';
}
if (empty($errors)) {
unset($_POST['sec_code']);
$body = '';
foreach($_POST as $k=>$v) {
if (isset($txt[$k])) {
$body .= "{$fields[$k]}: {$txt[$k][$v]}\n";
} else {
$body .= "{$fields[$k]}: $v\n";
}
}
$headers =
"From: noreply@cigareti.ru\n" .
"X-Mailer: PHP Mailer\n" .
"MIME-Version: 1.0\n" .
"Cc: info@mail.ru\n" .
"Content-type: text/plain; charset=utf-8\n";
mail(
'info@mail.ru',
'=?utf-8?B?' . base64_encode('Запрос с сайта cigareti.ru') . '?=',
$body, $headers
);
unset($_SESSION['secret_code']);
$_SESSION['sent'] = 1;
header('Location: /');
exit;
}
}

?>


<form method="post">
<table class="tableform">
<?php
if (isset($_SESSION['sent'])) {
echo '<h2 style="color:green">Спасибо, ваша заявка получена!</h2>';
unset($_SESSION['sent']);
}
?>
<tr>
<td<?php if (in_array('name', $errors)) echo ' style="color:red"' ;?>>ФИО</td>
<td><input type="text" maxlength="45" name="name" /></td>
</tr>
<tr>
<td>Выберете язык</td>
<td><select name="refer">
<option value="9" >выберите из списка</option>
<option value="10" >Английский</option>
<option value="11" >Немецкий</option>
<option value="12" >Французский</option>
<option value="13" >Испанский</option>
</select></td>
</tr>
<tr>
<td>Возраст</td>
<td><select name="vozrast">
<option value="9" >выберите из списка</option>
<option value="10" >Взрослый</option>
<option value="11" >Дошкольник</option>
<option value="12" >Младшие классы</option>
<option value="13" >Старшие классы</option>
</select></td>
</tr>
<tr>
<td>Удобное время занятий</td>
<td><select name="clock">
<option value="9" >выберите из списка</option>
<option value="10" >с 9-12</option>
<option value="11" >с 12-15</option>
<option value="12" >с 16-17.30</option>
<option value="13" >с 17.30-19</option>
<option value="14" >с 19-21</option>
</select></td>
</tr>
<tr>
<td>Удобные дни</td>
<td><select name="dni">
<option value="9" >выберите из списка</option>
<option value="10" >Пн</option>
<option value="11" >Вт</option>
<option value="12" >Ср</option>
<option value="13" >Чт</option>
<option value="14" >Пт</option>
<option value="15" >Сб</option>
<option value="16" >Вс</option>
</select>
<select name="dni2">
<option value="9" >выберите из списка</option>
<option value="10" >Пн</option>
<option value="11" >Вт</option>
<option value="12" >Ср</option>
<option value="13" >Чт</option>
<option value="14" >Пт</option>
<option value="15" >Сб</option>
<option value="16" >Вс</option>
</select></td>
</tr>
<tr>
<td>Примерный уровень</td>
<td><select name="uroven">
<option value="9" >выберите из списка</option>
<option value="10" >Starter</option>
<option value="11" >Elementary</option>
<option value="12" >Pre-Intermediate</option>
<option value="13" >Intermediate</option>
<option value="14" >Upper Intermediate</option>
<option value="15" >Advanced</option>
</select></td>
</tr>
<tr>
<td<?php if (in_array('phone', $errors)) echo ' style="color:red"' ;?>>Контактный телефон</td>
<td><input type="text" maxlength="45" name="phone" /></td>
</tr>
<tr>
<td<?php if (in_array('captcha', $errors)) echo ' style="color:red"' ;?>>Введите код:</td>
<td>
<div id="captcha">
<img src="/captcha.php" width="120" height="50" alt="Включите эту картинку для отображения кода безопасности" border="0" /><br />
<a onclick="reload();return false;" href="#">обновить, если не виден код</a>
</div>
<input type="text" maxlength="45" name="sec_code" style="width:115px" />
</td>
</tr>
</table>
<input type="submit" value="запись" />
</form>

<p>

<br>
<br>

Как перекодировать под cp1251? (не занимался ни разу)

V
На сайте с 02.09.2012
Offline
76
#7

попробуйте header('Content-Type: text/html; charset=utf-8'); заменить на header('Content-Type: text/html; charset=windows-1251');

B
На сайте с 13.07.2012
Offline
16
#8
voltamper:
попробуйте header('Content-Type: text/html; charset=utf-8'); заменить на header('Content-Type: text/html; charset=windows-1251');

Если так сделать, то страница сайта отображается нормально, а тексты скрипта превращаются в ������

V
На сайте с 02.09.2012
Offline
76
#9

blackb, отписал в лс

B
На сайте с 13.07.2012
Offline
16
#10
voltamper:
blackb, отписал в лс

ок.

Проблема ещё актуальна!

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий