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

E
На сайте с 23.10.2008
Offline
228
959

Здравствуйте. У меня проблемы с кодировкой при переносе сайта с денвера на сервер.

На странице прописана кодировка cp1251

база на локалке ср1251 с некоторыми полями utf8

файлы перенес без проблем

базу на сервере создал ср1251

сделал sql-запрос в новую бд и началось

через пхпмайадмин отображается запись на русском, выводится на сайте как "??????", а англ буквы и цифры без проблем выводятся.

Вставлял конструкцию set names cp1251 - не помогло.

При добавлении новой записи на локалке все без проблем, когда пробую добавить запись на серваке, то после этого момента:

# добавление статьи
if($_POST['Submit']){

if((!$_POST['title']) or (!$_POST['content']) ){
header('Location: addnews.php?err=full');
exit;
}

$querycheck = "SELECT *
FROM `news`
WHERE `title` = '".htmlspecialchars($_POST['title'])."'
AND `content` = '".htmlspecialchars($_POST['content'])."'
AND `autor` = '".htmlspecialchars($_POST['autor'])."'
";


$resultcheck = mysql_query($querycheck) or die("Query failed");

скрипт останавливается. Выяснил, что это происходит из-за того, что добавляю данные на русском языке, если добавить англ символы, то запись в бд происходит без проблем.

Буду благодарен, если окажете помощь в решении проблемы.

Подскажите, пожалуйста.

мопед не мой

topy
На сайте с 28.03.2006
Offline
142
#1

усп, не увидел, мой совет был про set names, потрите

Новости коротко и ясно (https://subnews.ru)
D
На сайте с 25.12.2006
Offline
37
#2

Можно попробовать:

AddDefaultCharset windows-1251 в .htaccess

setlocale(LC_ALL, 'ru_RU.CP1251'); в php

Контакты: icq 23378050 семь Услуги технолога, недешево ()
LEOnidUKG
На сайте с 25.11.2006
Offline
1769
#3

В скрипте я вижу только вывод, а не добавление.

скрипт останавливается.

Что значит останавливается? Какую ошибку выводит?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
D0
На сайте с 15.12.2009
Offline
59
#4

Query failed пишет, потому что бд не принимает данные их формы

Жизнью правит случай, а не мудрость.
LEOnidUKG
На сайте с 25.11.2006
Offline
1769
#5
demix01:
Query failed пишет, потому что бд не принимает данные их формы

Ещё раз, для тех кто в танке.

Что показывает: mysql_error();?

И где там запрос на ввод чего в БД?

D0
На сайте с 15.12.2009
Offline
59
#6

Вот весь код:

	include('conf_db.php'); # параметры базы данных

$link = mysql_connect($mysql_host, $mysql_user, $mysql_password)
or die("Невозможно подключиться к базе данных.");
mysql_query('sate name cp1251');

mysql_select_db($mysql_namedb) or die("Невозможно выбрать необходимую базу данных.");

# делаем запрос для панели статистики
include('php/notes-stat.php');
include('php/get_sql_vs.php');

# добавление статьи
if($_POST['Submit']){

if((!$_POST['title']) or (!$_POST['content']) ){
echo ('Произошла какая-то ошибка');
exit;
}

$querycheck = "SELECT *
FROM `notes`
WHERE `title` = '".htmlspecialchars($_POST['title'])."'
AND `content` = '".htmlspecialchars($_POST['content'])."'
AND `urlimg` = '".htmlspecialchars($_POST['urlimg'])."'
AND `catid` = '".htmlspecialchars($_POST['catid'])."'
AND `autor` = '".htmlspecialchars($_POST['autor'])."'
AND `mail` = '".htmlspecialchars($_POST['mail'])."'
AND `money` = '".htmlspecialchars($_POST['money'])."'
";


$resultcheck = mysql_query($querycheck) or die("Query failed");
$mascheck = mysql_fetch_array($resultcheck, MYSQL_ASSOC);

if(count($mascheck)>1){

header('Location: index.php?err=double');
exit();

}



$query = "INSERT INTO `notes` ( `id` , `title` , `content` , `urlimg` , `catid` , `autor` , `mail` , `money` , `date` )
VALUES (
'',
'".htmlspecialchars($_POST['title'])."',
'".htmlspecialchars($_POST['content'])."',
'".htmlspecialchars($_POST['urlimg'])."',
'".htmlspecialchars($_POST['catid'])."',
'".htmlspecialchars($_POST['autor'])."',
'".htmlspecialchars($_POST['mail'])."',
'".htmlspecialchars($_POST['money'])."',
'".htmlspecialchars(date("Y-m-d H-i-s"))."');";
$result = mysql_query($query);

if($result){
echo('<script> alert("Статья принята") </script>');
} else {
echo('<script> alert("Ошибка при добавлении статьи, попробуйте добавить еще разочек ") </script>');
}


}

if($_GET['err']=='double') echo('<script> alert("Такая статья уже присутствует.") </script>');
if($_GET['err']=='full') echo('<script> alert("Все поля обязательны для заполнения, повторите ввод") </script>');

?>

при добавлении данных через веб-интерфейс, скрипт выдает Query failed

Если данные залить дампом, то выводит на страницу вопросики.

LEOnidUKG
На сайте с 25.11.2006
Offline
1769
#7
mysql_query('sate name cp1251');

Это что за порнография?

надо так:

mysql_query("SET NAMES 'cp1251'")

LEOnidUKG добавил 10.12.2010 в 23:42

при добавлении данных через веб-интерфейс, скрипт выдает Query failed

Ещё раз...

вместо or die("Query failed");

пишем:

or die("ERROR:".mysql_error());

D0
На сайте с 15.12.2009
Offline
59
#8

Офигительно, оказывается я действительно порнографию написал с mysql_query('sate name cp1251');

Сразу видно опытный глаз у тебя. благодарствую. все работает теперь нормально. вопросики не выводит и данные записываются в базу.

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