Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Проблема с кодировкой  (Прочитано 462 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн anar4you

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Проблема с кодировкой
« : 30 Июня 2014, 14:30:47 »
Доброго времени суток всем пользователем форума :)

Вообщем перейду сразу к сути проблемы.
Установил апач, пхп, мускул, пхпмайадмин.
Вообщем данные через форму на сайте методом post отправляются в БД.
Если отправляю русские символы то в phpmyadmin'е они отображаются в виде иероглифов, но при этом правильно отображаются при выгрузке данных из БД на сайте.

Страница сайта, на котором выводятся данные из БД (Текст выводится правильно!)

(PhpMyAdmin, Текст в поле отображается не корректно!)

(PhpMyAdmin - Сервер баз данных, Веб-сервер)


Код писался в обычном редакторе "gedit". Когда сохранял документ, кодировку выбирал "UTF-8"
Вот код документа:
Код: (php) [Выделить]
<html>
<head>
<meta charset="utf-8">
<title>Админ-панель</title>
</head>
<body>
<?php
    $host
="localhost";
    
$user="root";
    
$pass="anar1996verdievstraick"//установленный вами пароль
    
$db_name="test";
    
$link=mysql_connect($host,$user,$pass);
    
mysql_select_db($db_name,$link);
if(isset($_POST["title"])) 
{
$sql mysql_query("INSERT INTO `news` (`title`, `text`) VALUES ('".$_POST['title']."','".$_POST['text']."')");
if($sql
{
echo "<p>Данные успешно добавлены в таблицу.</p>";
    
}
else
{
        echo 
"<p>Произошла ошибка.</p>";
    
}
}
?>


<table>
<form action="" method="post">
    <tr>
        <td>Title:</td>
        <td><input type="text" name="title"></td>
    </tr>
    <tr>
        <td>Текст:</td>
        <td><textarea type="text" name="text"></textarea></td>
    </tr>
    <tr>
        <td colspan="2"><input type="submit" value="OK"></td>
    </tr>
</form>
</table>

<?php

if (isset(
$_GET['del']))
{
$sql mysql_query('DELETE FROM `news` WHERE `id` = "'.$_GET['del'].'"');
    if(
$sql
{
    
echo "<p>Товар удален.</p>";
    }
else
{
echo "<p>Произошла ошибка.</p>";
    }
}

while ($result mysql_fetch_array($sql)) 
{
    echo 
$result['id'].") ".$result['title']." - <a href='?del=".$result['id']."'>Удалить</a><br>";
}

$sql mysql_query('SELECT `id`, `title`, `text` FROM `news`');
while ($result mysql_fetch_array($sql))
{
echo $result['id'].") ".$result['title']." - <a href='?del=".$result['id']."'>Удалить</a><br>";
}
?>


</body>
</html>

Как это исправить?

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Re: Проблема с кодировкой
« Ответ #1 : 30 Июня 2014, 14:56:57 »
У вас картинки не прицепились.

После соединения попробуйте назначить кодировку для запросов:
Код: (php) [Выделить]
...
    $link=mysql_connect($host,$user,$pass);
    mysql_select_db($db_name,$link);
    mysql_query("SET NAMES 'utf8'");
...

еще проверьте collation, см. результат запроса SHOW CREATE TABLE `news`;

P.S. И не забывайте данные экранировать.

Оффлайн anar4you

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Проблема с кодировкой
« Ответ #2 : 30 Июня 2014, 15:51:15 »
У вас картинки не прицепились.

После соединения попробуйте назначить кодировку для запросов:
Код: (php) [Выделить]
...
    $link=mysql_connect($host,$user,$pass);
    mysql_select_db($db_name,$link);
    mysql_query("SET NAMES 'utf8'");
...

еще проверьте collation, см. результат запроса SHOW CREATE TABLE `news`;

P.S. И не забывайте данные экранировать.

mysql_query("SET NAMES 'utf8'"); помогло это:)) спасибо)

 

Страница сгенерирована за 0.048 секунд. Запросов: 24.