Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

nx0.ru - бесплатный хостинг _ Техническая поддержка _ Вот проблема

Автор: suarez446 11.10.2010, 15:09

Вот решил установить мониторинг но вылазит одна ошибка из БД
Скрин:
Всё ввожу правильно....

Помогите, буду очень благодарен!

Автор: Phoenix84 11.10.2010, 15:41

Чем помочь то?! Ни логина, ни домена. Отвечал бы Горбушка, ответ был бы все в 2 раза грубее....

Автор: suarez446 11.10.2010, 15:52

Извините, первый раз пользуюсь хостингом

Логин: romanchenko446
домен: gamemonitoring.hx0.ru

Автор: Горбушка 11.10.2010, 17:42

Сервер MySQL вводили: localhost?

Автор: suarez446 11.10.2010, 18:07

да стоял сразу localhost

Автор: Горбушка 11.10.2010, 19:25

Ну тогда давай ссылку на скрипт - буду себе ставить, потом объясню как поставил =)

Автор: suarez446 11.10.2010, 19:57

Вот http://www.amxserv.net/Monitoring_info (не реклама)

Автор: Горбушка 11.10.2010, 20:01

Ок, завтра попробую поставить на srv1. Там будим смотреть...

Кстати, а ошибок PHP никаких не было?

Автор: suarez446 11.10.2010, 20:27

не должно.
не кто не жаловался.
да и раньше у меня стоял этот мон...

Автор: absinthe 11.10.2010, 22:06

Судя по ошибке MySQL ругается на значение по-молчание для поле 'zname' в момент создания таблицы.
А ругается СУБД явно из-за того, что сама БД у вас в UTF-8, а вот значение вы туда пытаетесь вставить в CP-1251:

Цитата
zname VARCHAR(50) NOT NULL DEFAULT 'CS 1.6 :: Мониторинг'


Как вариант попробуйте снести БД и создать ее заново с прямым указанием кодировки CP-1251.

Либо перед запросами с использованием кириллицы делать запросы:
Код
SET NAMES cp1251


Автор: Горбушка 11.10.2010, 23:37

Не думаю, что проблема с кодировкой. Мускул 5 прекрасно с ними работает и хранит разные кодировки даже в нутри одной таблицы. Так что очень сомневаюсь в этом варианте.
Скорее всего разработчик опечатался в sql-запросе. На офф-сайте куча жалоб на подобные ошибки.

Автор: absinthe 12.10.2010, 8:10

smile.gif А я и не спорю о возможностях MySQL - они весьма впечатляют, но сейчас не об этом. В пользу версии с некорректными кодировками - сделал только что эксперимент (правда на Windows машине, но не думаю что различия будут - если только PHP собирался с отличными от дефолтных параметрами).

Итак что имеем:
1. таблица test_table в БД с кодировкой UTF-8, структура которой - всего два поля: id int, name varchar(100).
2. Скрипт PHP набранный в кодировке cp-1251:

Код
<?php

$mysqli=new mysqli('localhost','user','pass','test');
if ($mysqli->connect_error)
{
    //ошибка при обращении к БД
    echo "ошибка соединения";
}
$sql_query="INSERT INTO test_table (name) VALUES ('тест'),('тест2')";
$result=$mysqli->query($sql_query);
if (!$result)
{
    echo 'ошибка '.$mysqli->error;
}
else
{
    echo 'ok';
}
?>


Итак запуск скрипта, и его вывод:
Цитата
ошибка Incorrect string value: '\xF2\xE5\xF1\xF2' for column 'name' at row 1

Значений, естественно, никаких в БД не появилось.

Меняем скрипт и добавляем запрос на изменение установок подключения к MySQL: $mysqli->query('SET NAMES cp1251');
Код
<?php

$mysqli=new mysqli('localhost','user','pass','test');
if ($mysqli->connect_error)
{
    //ошибка при обращении к БД
    echo "ошибка соединения";
}
$mysqli->query('SET NAMES cp1251');
$sql_query="INSERT INTO test_table (name) VALUES ('тест'),('тест2')";
$result=$mysqli->query($sql_query);
if (!$result)
{
    echo 'ошибка '.$mysqli->error;
}
else
{
    echo 'ok';
}
?>


Вывод скрипта:
Цитата
ok

И значение в БД - появились.

Хоть тут были и не значения поля по-умолчанию, но я думаю понятен пример - проблема с кодировками для русского языка. Получается что хранилище UTF-8, сам скрипт содержит данные в CP-1251, а PHP общается с MySQL "по-умолчанию" в Latin1.
Я не знаю почему создатель скрипта не уделил должного внимания кодировкам - это, кажется, одна из первых "глобальных" проблем при работе с БД из PHP smile.gif

Автор: Горбушка 12.10.2010, 10:04

Хм... Странно...
Раза 2 была проблема, когда сайт в ютф, бд в 1251... Выводились крякозабры, но всё работало...
Кстати, у меня сайт в ютф, бд в ютв - никакие set names не делаю...

Автор: absinthe 12.10.2010, 10:44

Если и сайт и БД в UTF-8, то в принципе, SET NAMES нужно посылать серверу только в момент добавления новых данных, особенно это касается национальных языков (включая и русский smile.gif ), а так же в запросах типа "SELECT ... LIKE" и "SELECT ... MATCH ... AGAINST ...". Если не добавить SET NAMES перед запросами SELECT - то поиск будет проводиться в регистрозависимом режиме smile.gif

Автор: Горбушка 12.10.2010, 11:15

Не знаю, у меня всё нормик и без SET NAMES, ибо наши сервера настроены на UTF-8.

Автор: suarez446 12.10.2010, 13:05

Судя и всего выше сказанного Мониторинг не получиться поставить.....
Я правильно понял?

Автор: absinthe 12.10.2010, 15:22

Теоретически можно все - было бы желание smile.gif
Я не думаю что админы сервера найдут "баги" на своей стороне, это более похоже на недоработку создателя устанавливаемого вами Мониторинга. Поэтому и рассчитывать нужно более на себя и на тех. поддержку создателей Мониторинга. ИМХО smile.gif

Автор: suarez446 12.10.2010, 15:28

Ну я был этот же мониторинг устанавливал на другом хостинге там с БД было всё норм..
а тут не получается...

Автор: for-us 12.10.2010, 16:06

Сопсно - http://test.for-us.nl/ , поставилось.
файл install.php
строки 181-203

Код
            $result = dbquery("CREATE TABLE ".$db_prefix."settings (
            sitename VARCHAR(200) NOT NULL DEFAULT '',
            siteurl VARCHAR(200) NOT NULL DEFAULT '',
            siteemail VARCHAR(100) NOT NULL DEFAULT '',
            siteusername VARCHAR(30) NOT NULL DEFAULT '',
            description TEXT NOT NULL,
            keywords TEXT NOT NULL,
            locale VARCHAR(20) NOT NULL DEFAULT 'Russian',
            enable_registration TINYINT(1) UNSIGNED DEFAULT '1' NOT NULL,
            license TEXT NOT NULL,
            version VARCHAR(10) NOT NULL DEFAULT '',
            AMX TEXT NOT NULL,
            proverka TEXT NOT NULL,
            maintenance TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
            maintenance_message TEXT NOT NULL,
            Generator TEXT NOT NULL,
            num_servers TINYINT(1) UNSIGNED NOT NULL DEFAULT '20',
            register_MG1 TEXT NOT NULL,
            register_MG2 TEXT NOT NULL,
            copy_mon TEXT NOT NULL,
            register_off TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
            zname VARCHAR(50) NOT NULL DEFAULT 'CS 1.6 :: Ìîíèòîðèíã'
            ) TYPE=MyISAM;");

заменил на
Код
            $result = dbquery("CREATE TABLE ".$db_prefix."settings (
            sitename VARCHAR(200) NOT NULL DEFAULT '',
            siteurl VARCHAR(200) NOT NULL DEFAULT '',
            siteemail VARCHAR(100) NOT NULL DEFAULT '',
            siteusername VARCHAR(30) NOT NULL DEFAULT '',
            description TEXT NOT NULL,
            keywords TEXT NOT NULL,
            locale VARCHAR(20) NOT NULL DEFAULT 'Russian',
            enable_registration TINYINT(1) UNSIGNED DEFAULT '1' NOT NULL,
            license TEXT NOT NULL,
            version VARCHAR(10) NOT NULL DEFAULT '',
            AMX TEXT NOT NULL,
            proverka TEXT NOT NULL,
            maintenance TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
            maintenance_message TEXT NOT NULL,
            Generator TEXT NOT NULL,
            num_servers TINYINT(1) UNSIGNED NOT NULL DEFAULT '20',
            register_MG1 TEXT NOT NULL,
            register_MG2 TEXT NOT NULL,
            copy_mon TEXT NOT NULL,
            register_off TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
            zname VARCHAR(50) NOT NULL DEFAULT 'CS 1.6'
            ) TYPE=MyISAM;");


Автор: Горбушка 12.10.2010, 17:22

absinthe, со стороны сервера никто ничего и не ищет... Сервер в порядке в плане мускула.
for-us, спасибо.

Автор: kick 12.11.2010, 11:52

Цитата(for-us @ 12.10.2010, 20:19) *
Сопсно - http://test.for-us.nl/ , поставилось.
файл install.php
строки 181-203

Ух ты..а можно чуть-чуть подробнее? А то у меня даже инсталятор не запускается(( Тот код который вы указали, я заменил.
Я может быть не правильно корневую директорию определил? Все файлы я залил в .filemgr-tmp, подредактировал исходный код install.php (так как Вы написали), создал БД (кодировка UTF-8) Набираю в браузере http://my_ip/install.php - страница не находится...подскажите пожалуйста хотя бы в двух словах что не так делаю.

Автор: BuriK666 12.11.2010, 12:01

файлы должны лежать в public_html

Автор: kick 12.11.2010, 12:15

В общем нету там никакой папки public_html. При парковке домена автоматом создается папка www. Пожалуйста подскажите (хотя бы ссылкой на материал) Где у вас тут можно узнать структуру сайта на хостинге? И куда заливать файлы? А то у меня install запустить не получается.
Спасибо.

Автор: Гад 12.11.2010, 14:36

Да, создается папка www, а там, в этой папке, еще одна папка, название у неё(папки) схоже с вашим доменом.
так вот. получается, что public_html = ничто иное, как /www/вашдомен/. Значит все файлы следует заливать туда.
и второе:
что за

Цитата
http://my_ip/install.php
?
должно быть http://вашсайт/install.php

Автор: kick 12.11.2010, 15:42

Цитата(Гад @ 12.11.2010, 18:49) *
Да, создается папка www, а там, в этой папке, еще одна папка, название у неё(папки) схоже с вашим доменом.
так вот. получается, что public_html = ничто иное, как /www/вашдомен/. Значит все файлы следует заливать туда.
и второе:
что за
Цитата
http://my_ip/install.php
?
должно быть http://вашсайт/install.php

Спасибо огромное. Сейчас понимаю что сам фтупил. Все установил.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)