Перейти к содержимому



При переносе на другой хостинг сбилась кодировка комментариев

#1 cap4369

cap4369
  • Неактивные
  • 62 сообщений
  • Репутация: 1
0

Отправлено 29 Декабрь 2013 - 17:46

Здравствуйте!
Может кто сталкивался с такой проблемой? Перенес сайт на хостинг, все работает нормально за исключением добавления комментариев, они почему- то заносятся в базу данных в кодировке CP1251. Тех служба мне говорит, что скрипт в этой кодировке. Но у меня в текстовом редакторе выставлена кодировка UTF-8 по умолчанию. Да и на Денвере работало без проблем. Я на всякий случай еще раз сохранил скрипт в UTF-8.
Да и в самом скрипте указано, что переменные, значения полей указываются в этой кодировке. Вот код обработчика:
<?php
session_start();
require "config.php";
if($_POST['submit']) {
$name = trim(mysql_real_escape_string(mb_substr($_POST['name'],0,20,'UTF-8')));
$comment = trim(mysql_real_escape_string(mb_substr($_POST['comment'],0,1000,'UTF-8')));
$captcha = $_POST['captcha'];

if(empty($name)) $error = " <p><b>Введите имя</b></p>";
if(empty($comment)) $error .= "<p><b>Введите комментаий</b></p>";
if(empty($captcha)) $error ."<p><b>Введите ответ</b></p>";
if($captcha != $_SESSION['res_captcha']) $error .= "<p><b>Не верный ответ</p>";

if(empty($error)){
  $res = mysql_query("INSERT INTO `comments_fest` SET `name` = '$name', `comment` = '$comment'");
  if(mysql_affected_rows() >0) {
   $_SESSION['res_comm'] = '<p><strong>Спасибо! Ваше сообщение добавлено.</strong></p>';
   header("Location: $site_url?option=blysc#res_comm");
   exit();
  }
  else {
   $_SESSION['res_comm'] = '<p><strong>Ваше сообщение не добавлено. Попробуйте позже.</strong></p>';
   header("Location: $site_url?option=blysc#res_comm");
   exit();
  }
}
else {
  $_SESSION['res_comm'] = '<p><strong>Ошибка заполнения формы:</strong></p>'.$error;
  $_SESSION['name'] = $name;
  $_SESSION['comment'] = $comment;
  header("Location: $site_url?option=blysc#res_comm");
  exit();
}
}
?>

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Перенос сайта на новый хостинг
  2. Как правильно перенести сайт на новый домен
  3. Ошибка при переносе на другой хост
  4. Можно ли так перенести сайт на другой хостинг
  5. Переделал сайт. Что можно исправить?

#2 Ixman

Ixman
  • Пользователь PRO
  • 2 470 сообщений
  • Репутация: 572

Отправлено 29 Декабрь 2013 - 18:08

В файл htaccess добавьте следующее

php_value default_charset UTF-8

  • 0


#3 cap4369

cap4369
    Topic Starter
  • Неактивные
  • 62 сообщений
  • Репутация: 1

Отправлено 29 Декабрь 2013 - 18:15

На хостинге стоит запрет на php_value и php_flag. И у меня в .htaccess обозначено AddDefaultCharset utf-8
Вот ссылка на страницу http://www.s-lapkovs...m/?option=blysc
  • 0

#4 Ixman

Ixman
  • Пользователь PRO
  • 2 470 сообщений
  • Репутация: 572

Отправлено 29 Декабрь 2013 - 18:16

А при подключении к базе кодировка указана?
  • 0


#5 cap4369

cap4369
    Topic Starter
  • Неактивные
  • 62 сообщений
  • Репутация: 1

Отправлено 29 Декабрь 2013 - 18:26

Нет, а как она указывается? Но ведь в других формах, например в админке, данные в БД заносятся в нормальной кодировке.
  • 0

#6 Ixman

Ixman
  • Пользователь PRO
  • 2 470 сообщений
  • Репутация: 572

Отправлено 29 Декабрь 2013 - 18:33

Ну тогда не знаю почему так происходит, возможно где-то ошибка в кодировке всё же.
Для MySQL так
mysql_query('SET NAMES `utf8`');

  • 0


#7 cap4369

cap4369
    Topic Starter
  • Неактивные
  • 62 сообщений
  • Репутация: 1

Отправлено 29 Декабрь 2013 - 18:54

Все, разобрался, спасибо! Эту строку нужно писать в скрипте перед запросом

$res = mysql_query("INSERT INTO `comments_fest` SET `name` = '$name', `comment` = '$comment'");


  • 0

#8 Ixman

Ixman
  • Пользователь PRO
  • 2 470 сообщений
  • Репутация: 572

Отправлено 30 Декабрь 2013 - 09:42

cap4369, какую именно? Ту что я дал с кодировкой? Её лучше указать вместе с подключением к БД, тогда она будет распространена для всех запросов. Иначе потом могут быть проблемы с дампом базы данных. Я сам когда-то так полностью потерял базу
  • 0


#9 cap4369

cap4369
    Topic Starter
  • Неактивные
  • 62 сообщений
  • Репутация: 1

Отправлено 30 Декабрь 2013 - 17:47

Спасибо, переделал
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru