Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Знаки вопроса после вывода из бд MySQL
Форумы портала PHP.SU » » Вопросы новичков » Знаки вопроса после вывода из бд MySQL

Страниц (1): [1]
 

1. Artemios - 07 Апреля, 2016 - 22:26:07 - перейти к сообщению
Доброго времени суток форумчане!

Целый день копаю в просторах интернета, не могу найти решение своей проблемы...

Пытаюсь вывести последние пять тем форума к себе на сайт. Русские символы выводятся знаками вопроса (Пример: Test ???????? ?????). Форум IPB, кодировка базы данных utf8_general_ci. В чем может быть проблема? Прошу помощи, буду очень благодарен. Уже нет сил ковыряться Растерялся

Код вывода:

PHP:
скопировать код в буфер обмена
  1.                           $CONNECT_FORUM = mysqli_connect("****", "******", "******", "*******");
  2.                           $sql = mysqli_query($CONNECT_FORUM, 'SELECT * FROM `topics` ORDER BY `tid` DESC limit 5');
  3.                           while ($row = mysqli_fetch_assoc($sql)) {
  4.                           echo '
  5.                          
  6.                       <li><a href="'.FORUMLINK.'/index.php?/topic/'.$row['tid'].'" title="">'.$row['title'].'</a></li>
  7.                    ';
  8.                           }


В шапке сайта:

CODE (html):
скопировать код в буфер обмена
  1. <html lang="ru"></html>
  2. <head>
  3.   <meta charset="UTF-8" />


Заранее спасибо!
2. Мелкий - 07 Апреля, 2016 - 22:57:29 - перейти к сообщению
Коннект есть, а где установка кодировки соединения?
http://php.net/manual/en/mysqlin...epts.charset.php
3. Artemios - 07 Апреля, 2016 - 23:01:42 - перейти к сообщению
Я пробывал этот вариант. Не помогло
(Добавление)
Перепробывал все
4. Artemios - 08 Апреля, 2016 - 13:48:37 - перейти к сообщению
Ребят, неужели никто не поможет? Огорчение
5. esterio - 08 Апреля, 2016 - 14:27:51 - перейти к сообщению
А сама страница в какой кодировке? Заодно и хедер Content-type посмотрите
6. Artemios - 08 Апреля, 2016 - 14:30:39 - перейти к сообщению
Извиняюсь за глупый вопрос, а как проверить хедер Content-type?

Страница в UTF8 без BOM
7. esterio - 08 Апреля, 2016 - 14:37:44 - перейти к сообщению
В дебагере браузера. Например в ФФ Firebug->Net
8. Artemios - 08 Апреля, 2016 - 14:55:56 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1. HTTP/1.1 200 OK
  2. Server: nginx/1.8.1
  3. Date: Fri, 08 Apr 2016 11:31:40 GMT
  4. Content-Type: text/html
  5. Transfer-Encoding: chunked
  6. Connection: keep-alive
  7. Keep-Alive: timeout=20
  8. Vary: Accept-Encoding
  9. X-Powered-By: PHP/5.5.33


Я так понял вот это?
9. esterio - 08 Апреля, 2016 - 16:01:21 - перейти к сообщению
да. напишите тогда в начале такое
PHP:
скопировать код в буфер обмена
  1. header('Content-Type: text/html; charset=utf-8');
10. Artemios - 08 Апреля, 2016 - 19:21:08 - перейти к сообщению
В начале чего? Подключения?
11. Artemios - 08 Апреля, 2016 - 23:30:32 - перейти к сообщению
В общем еще один день, бессмысленных ковыряний Недовольство, огорчение
12. Artemios - 09 Апреля, 2016 - 11:46:29 - перейти к сообщению
esterio пишет:
header('Content-Type: text/html; charset=utf-8');


Не помогает
(Добавление)
Я выяснил одну очень важную деталь.

При вводе SQL запроса SHOW VARIABLES LIKE 'char%'; в phpmyadmin необходимой мне базы, я обнаружил, что character_set_server у меня latin1 и именно по этому кириллица некорректно отображается.

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

Как обойти настройку самого сервера?
13. Арикус - 10 Апреля, 2016 - 00:14:30 - перейти к сообщению
http://forum[dot]ubuntu[dot]ru/index.php?topic=79590[dot]0

Это я написал до того, как прочитал ваше последнее сообщение:
Попробуйте после подключения к БД прописать (замени переменную соединения)

и внутри <head>
CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Насчёт предыдущего совета, в начале php:
PHP:
скопировать код в буфер обмена
  1. <? ob_start();
  2. header('Content-type: text/html; charset=utf-8');
14. Artemios - 13 Апреля, 2016 - 17:47:01 - перейти к сообщению
Спасибо всем большое. Я разобрался сам.

Решение:

Поменял хостера.
15. Kagax - 23 Августа, 2017 - 17:55:15 - перейти к сообщению

и внутри <head>
CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Спасибо, помогло! Ха-ха

 

Powered by ExBB FM 1.0 RC1