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



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

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

Обновлено 30 декабря 2013 - 17:47  Отправлено 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

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

Отправлено 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
  • 3 177 сообщений
  • Репутация: 850

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

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


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

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

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

#6 Ixman
Ixman
  • Пользователь PRO
  • 3 177 сообщений
  • Репутация: 850

Отправлено 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
  • 3 177 сообщений
  • Репутация: 850

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

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


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

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

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

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


Похожие темы
  Название темы Автор Статистика Последнее сообщение

Пользователь месяца
Megoydagi Megoydagi 1-й за Август
Очков активности: 30 4 темы, 8 сообщений, 1 балл репутации
Сайт: bank.net.ru
ТОП самых активных за этот месяц
  • Фотография Vmir
    #1

    Vmir
    Очков активности: 48 3 темы, 7 сообщений, 2 балла репутации

  • Фотография BLIK
    #2

    BLIK
    Очков активности: 40.5 Вне конкурса за определение пользователя месяца

  • Фотография SergiuS85
    #3

    SergiuS85
    Очков активности: 12 2 темы, 2 сообщения, 1 балл репутации

  • Фотография WGN
    #4

    WGN (worldgamenews.com)
    Очков активности: 12 1 тема, 5 сообщений, 1 балл репутации

  • Фотография Totti
    #5

    Totti
    Очков активности: 12 0 тем, 8 сообщений, 1 балл репутации

  • Фотография kuztoday
    #6

    kuztoday
    Очков активности: 10.5 1 тема, 4 сообщения, 1 балл репутации

  • Фотография Zevss
    #7

    Zevss (domles43.ru)
    Очков активности: 10.5 2 темы, 1 сообщение, 1 балл репутации

  • Фотография Sale_account
    #8

    Sale_account
    Очков активности: 10.5 2 темы, 1 сообщение, 1 балл репутации

  • Фотография Megoydagi
    #9

    Megoydagi (bank.net.ru)
    Очков активности: 9 Вне конкурса за определение пользователя месяца

  • Фотография mkreine
    #10

    mkreine (analiz-krovi.net)
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Показать весь ТОП 10

Поддержите форум! =)
Топ 5 участников по репутации

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