X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> При переносе на другой хостинг сбилась кодировка комментариев
cap4369
cap4369
Topic Starter сообщение 29.12.2013, 18:46; Ответить: cap4369
Сообщение #1


Здравствуйте!
Может кто сталкивался с такой проблемой? Перенес сайт на хостинг, все работает нормально за исключением добавления комментариев, они почему- то заносятся в базу данных в кодировке 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
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 29.12.2013, 19:08; Ответить: ixman
Сообщение #2


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

[php]php_value default_charset UTF-8[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cap4369
cap4369
Topic Starter сообщение 29.12.2013, 19:15; Ответить: cap4369
Сообщение #3


На хостинге стоит запрет на php_value и php_flag. И у меня в .htaccess обозначено AddDefaultCharset utf-8
Вот ссылка на страницу http://www.s-lapkovsky.com/?option=blysc
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 29.12.2013, 19:16; Ответить: ixman
Сообщение #4


А при подключении к базе кодировка указана?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cap4369
cap4369
Topic Starter сообщение 29.12.2013, 19:26; Ответить: cap4369
Сообщение #5


Нет, а как она указывается? Но ведь в других формах, например в админке, данные в БД заносятся в нормальной кодировке.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 29.12.2013, 19:33; Ответить: ixman
Сообщение #6


Ну тогда не знаю почему так происходит, возможно где-то ошибка в кодировке всё же.
Для MySQL так
[php]mysql_query('SET NAMES `utf8`');[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cap4369
cap4369
Topic Starter сообщение 29.12.2013, 19:54; Ответить: cap4369
Сообщение #7


Все, разобрался, спасибо! Эту строку нужно писать в скрипте перед запросом
$res = mysql_query("INSERT INTO `comments_fest` SET `name` = '$name', `comment` = '$comment'");
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 30.12.2013, 10:42; Ответить: ixman
Сообщение #8


[member=cap4369], какую именно? Ту что я дал с кодировкой? Её лучше указать вместе с подключением к БД, тогда она будет распространена для всех запросов. Иначе потом могут быть проблемы с дампом базы данных. Я сам когда-то так полностью потерял базу
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cap4369
cap4369
Topic Starter сообщение 30.12.2013, 18:47; Ответить: cap4369
Сообщение #9


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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Хостинг "Hostland" - качественный хостинг по разумным ценам и со своей Панелью Управления
0 artmeteor 558 18.4.2024, 22:46
автор: artmeteor
Горячая тема (нет новых ответов) Услуги хостинг, аренда серверов США, Нидерланды, РФ | RICHHost
110 RICHHost 66948 17.4.2024, 1:30
автор: RICHHost
Горячая тема (нет новых ответов) LITE.HOST - хостинг для тех, кто любит не переплачивать
74 akkyoh 30909 6.4.2024, 19:41
автор: Kseniya_Klimova
Горячая тема (нет новых ответов) Дешевый SSD хостинг на DDR4 с DDOS защитой для 10 сайтов за 69 рублей!
106 HostiMan 70445 2.4.2024, 19:34
автор: HostiMan
Открытая тема (нет новых ответов) Мегамаркет. Скидка 1000 рублей при покупке от 5000 рублей на все, на первый заказ.
Мегамаркет. Скидка 1000 рублей при покупке от 5000 рублей на все, на п
7 stu999 1756 31.3.2024, 11:19
автор: stu999


 



RSS Текстовая версия Сейчас: 25.4.2024, 0:13
Дизайн