Перейти к публикации
Arteom

PHP Проблема с кодировкой

Рекомендованные сообщения

Arteom

Привет всем. У меня такая ситуация. Я, значит, создал таблицу в кодировке utf-8. Взял библиотеку mysql из dle и имею простой скрипт отправки данных в таблицу:

<?php
$content = <<<HTML
	<form method="post" action="">
		Заголовок <input type="text" name="title" /><br/>
		Описание <input type="text" name="text" /><br/>
		Картинка <input type="text" name="img" /><br/>
		<input type="submit" />
	</form>
HTML;
$test1 = $_POST['title'];
$test2 = $_POST['text'];
$test3 = $_POST['img'];
if($test1 && $test2 && $test3){
	$db->query( "INSERT INTO test (test1, test2, test3) VALUES('$test1', '$test2', '$test3')" );
$content = <<<HTML
	Это случилось!<br/>
	Заголовок: $test1 <br/>
	Описание: $test2 <br/>
	Картинка: $test3
HTML;
}
?>

Смотрю в таблицу в phpmyadmin и вижу Ð—аголовок

 

Вывожу на страницу:

$sql_result = $db->super_query( "SELECT * FROM test" );

$content .= $sql_result['test1'] . ' ,';
$content .= $sql_result['test2'] . ' ,';
$content .= $sql_result['test3']; 

и отображается все нормально, русскими буквами.

Все кодировки utf-8. Кодировка файлов utf-8 без BOM.

 

В чем может быть проблема?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TheAndrey

SET NAMES utf8

Выполни запрос сразу после подключения к БД, чтобы была правильная кодировка соединения.

о фильтрации входящих данных не забывай :pro:

// кодировка самого файла не важна. Это никак не влияет на обработку данных в данном случае

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
qpPeW

Привет всем. У меня такая ситуация. Я, значит, создал таблицу в кодировке utf-8. Взял библиотеку mysql из dle и имею простой скрипт отправки данных в таблицу:

<?php
$content = <<<HTML
	<form method="post" action="">
		Заголовок <input type="text" name="title" /><br/>
		Описание <input type="text" name="text" /><br/>
		Картинка <input type="text" name="img" /><br/>
		<input type="submit" />
	</form>
HTML;
$test1 = $_POST['title'];
$test2 = $_POST['text'];
$test3 = $_POST['img'];
if($test1 && $test2 && $test3){
	$db->query( "INSERT INTO test (test1, test2, test3) VALUES('$test1', '$test2', '$test3')" );
$content = <<<HTML
	Это случилось!<br/>
	Заголовок: $test1 <br/>
	Описание: $test2 <br/>
	Картинка: $test3
HTML;
}
?>

Смотрю в таблицу в phpmyadmin и вижу Ð—аголовок

 

Вывожу на страницу:

$sql_result = $db->super_query( "SELECT * FROM test" );

$content .= $sql_result['test1'] . ' ,';
$content .= $sql_result['test2'] . ' ,';
$content .= $sql_result['test3']; 

и отображается все нормально, русскими буквами.

Все кодировки utf-8. Кодировка файлов utf-8 без BOM.

 

В чем может быть проблема?

скорей всего у тебя mysql сервер работает с кодировкой latin1 и когда ты создаешь базу в utf8 то в базе криво а на сайте нормально, а если создаешь базу в latin1 то в базе будет нормально, а на сайт будут выводиться знаки вопросов...

 

upd// забыл написать что тебе нужно добавить... в файле где у тебя идет подключение к базе, добавляешь

 

mysql_set_charset('utf8',$db);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Arteom

Спасибо, все попробовал, но походу нам с utf-8 не по пути(
 

Еще такой вопрос, если можно. Загружаю картинку, как корневую папку использую: define('ROOT_DIR', dirname(__FILE__));

После записи пути картинки в бд убираются обратные слеши и путь к картинке становится не корректным: 

W:domainscms/uploads/загруженное20130820190228.j

Вместо

W:/domains/cms/uploads/загруженное20130820190228.j

Какая функция преобразует обратные слеши в нормальные?

Делаю на Open Server, и хотелось бы путь в картинке http://cms.ru/, как сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Михаил

Зачем тебе обратные слеши? 

Ты написал '/' а не '\' и пишешь обратные слеши...

 

Изменено пользователем Михаил

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Arteom

define('ROOT_DIR', dirname(__FILE__)); выдает W:\domains\cms . Там не правильно написал)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
qpPeW
$_SERVER['DOCUMENT_ROOT']

атата )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Arteom

 

$_SERVER['DOCUMENT_ROOT']

атата )

Спасибо, то что нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...