Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2008-11-01 17:00:14

Spy
Гость

Проблема после переезда на другой хостинг [notice: unserialize]

Появилось уведомление:

Notice: unserialize() [function.unserialize]: Error at offset 56 of 74 bytes in /public_html/index.php on line 124

Еще кодировка на форуме заглючила. Хотя в phpmyadmin посмотрел топики и там все ок с кодировкой, в общем странно как-то...

Подскажите, как можно исправить проблему?

Редактировался Spy (2008-11-05 12:42:55)

#2 2008-11-01 17:35:40

hcs
Гость

Re: Проблема после переезда на другой хостинг [notice: unserialize]

нужно очистить кэш (физически удалить все файлы кроме index.html из директории cache ) и вставить правильный  SET NAMES  в /include/dblayer/mysql.php:

??? - вместо русских букв - как пофиксить?

#3 2008-11-01 21:04:21

Spy
Гость

Re: Проблема после переезда на другой хостинг [notice: unserialize]

спасибо за помощь.

К сожалению уведомление "Notice: unserialize() [function.unserialize]" не пропало и кодировка полностью не исправилась sad

#4 2008-11-03 12:17:45

Spy
Гость

Re: Проблема после переезда на другой хостинг [notice: unserialize]

кто-нибудь все таки мог бы помочь в вопросе?

#5 2008-11-03 16:44:16

hcs
Гость

Re: Проблема после переезда на другой хостинг [notice: unserialize]

Notice: unserialize() [function.unserialize]
мне кажется это проблема со списком модераторов, попробуй удалить всех модераторов для разделов в админке.
у тебя какое-то смешение кодировок, нужно внимательно делать дамп и так же внимательно создавать из него новую базу, не полагаясь на умолчания, которые предлагает клиент phpMyAdmin, поскольку на одном хостинге у него дефолт чарсет и коллейшн win1251, а на другом какая-нибудь шведская кодировка.

#6 2008-11-03 19:04:59

Spy
Гость

Re: Проблема после переезда на другой хостинг [notice: unserialize]

А разве при "Экспорте" базы в phpmyadmin можно выбрать кодировку?

Известно, что версия MySQL на старом хостинге: 5.0.51a-community-log, а на новом 5.0.67

Редактировался Spy (2008-11-03 19:10:51)

#7 2008-11-03 19:23:38

coordinator
Гость

Re: Проблема после переезда на другой хостинг [notice: unserialize]

Можно установить для БД, куда будет ставиться бекап. Во вкладке "Операции".

#8 2008-11-03 19:43:34

Spy
Гость

Re: Проблема после переезда на другой хостинг [notice: unserialize]

Да, hcs, прав, действительно какой-то конфликт с кодировками в бд (откуда-то взялась шведская кодировка smile ). Причем дамп в норме.
http://dl.getdropbox.com/u/151435/encoding.jpg - скрин структуры бд, на новом хосте. Как там можно убрать эту шведскую кодировку?

UPD: убрал шведскую кодировку и заменил на ту, которая и в старой базе cp1251_bin, но это не помогло к сожалению sad
Модераторов тоже удалил, но это тоже ничего не дало.

Может как-то не так прописал set names?

<?php
/***********************************************************************

  Copyright (C) 2002-2008  PunBB

  This file is part of PunBB.

  PunBB is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published
  by the Free Software Foundation; either version 2 of the License,
  or (at your option) any later version.

  PunBB is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  MA  02111-1307  USA

************************************************************************/


// Make sure we have built in support for MySQL
if (!function_exists('mysql_connect'))
    exit('This PHP environment doesn\'t have MySQL support built in. MySQL support is required if you want to use a MySQL database to run this forum. Consult the PHP documentation for further assistance.');


class DBLayer
{
    var $prefix;
    var $link_id;
    var $query_result;

    var $saved_queries = array();
    var $num_queries = 0;


    function DBLayer($db_host, $db_username, $db_password, $db_name, $db_prefix, $p_connect)
    {
        $this->prefix = $db_prefix;

        if ($p_connect)
            $this->link_id = @mysql_pconnect($db_host, $db_username, $db_password);
        else
            $this->link_id = @mysql_connect($db_host, $db_username, $db_password);
            mysql_query("SET NAMES cp1251");

        if ($this->link_id)
        {
            if (@mysql_select_db($db_name, $this->link_id))
                return $this->link_id;
            else
                error('Unable to select database. MySQL reported: '.mysql_error(), __FILE__, __LINE__);
        }
        else
            error('Unable to connect to MySQL server. MySQL reported: '.mysql_error(), __FILE__, __LINE__);
    }


    function start_transaction()
    {
        return;
    }


    function end_transaction()
    {
        return;
    }


    function query($sql, $unbuffered = false)
    {
        if (defined('PUN_SHOW_QUERIES'))
            $q_start = get_microtime();

        if ($unbuffered)
            $this->query_result = @mysql_unbuffered_query($sql, $this->link_id);
        else
            $this->query_result = @mysql_query($sql, $this->link_id);

        if ($this->query_result)
        {
            if (defined('PUN_SHOW_QUERIES'))
                $this->saved_queries[] = array($sql, sprintf('%.5f', get_microtime() - $q_start));

            ++$this->num_queries;

            return $this->query_result;
        }
        else
        {
            if (defined('PUN_SHOW_QUERIES'))
                $this->saved_queries[] = array($sql, 0);

            return false;
        }
    }


    function result($query_id = 0, $row = 0)
    {
        return ($query_id) ? @mysql_result($query_id, $row) : false;
    }


    function fetch_assoc($query_id = 0)
    {
        return ($query_id) ? @mysql_fetch_assoc($query_id) : false;
    }


    function fetch_row($query_id = 0)
    {
        return ($query_id) ? @mysql_fetch_row($query_id) : false;
    }


    function num_rows($query_id = 0)
    {
        return ($query_id) ? @mysql_num_rows($query_id) : false;
    }


    function affected_rows()
    {
        return ($this->link_id) ? @mysql_affected_rows($this->link_id) : false;
    }


    function insert_id()
    {
        return ($this->link_id) ? @mysql_insert_id($this->link_id) : false;
    }


    function get_num_queries()
    {
        return $this->num_queries;
    }


    function get_saved_queries()
    {
        return $this->saved_queries;
    }


    function free_result($query_id = false)
    {
        return ($query_id) ? @mysql_free_result($query_id) : false;
    }


    function escape($str)
    {
        if (is_array($str))
            return '';
        else if (function_exists('mysql_real_escape_string'))
            return mysql_real_escape_string($str, $this->link_id);
        else
            return mysql_escape_string($str);
    }


    function error()
    {
        $result['error_sql'] = @current(@end($this->saved_queries));
        $result['error_no'] = @mysql_errno($this->link_id);
        $result['error_msg'] = @mysql_error($this->link_id);

        return $result;
    }


    function close()
    {
        if ($this->link_id)
        {
            if ($this->query_result)
                @mysql_free_result($this->query_result);

            return @mysql_close($this->link_id);
        }
        else
            return false;
    }
}

Редактировался Spy (2008-11-04 14:38:22)

#9 2008-11-04 14:38:33

Spy
Гость

Re: Проблема после переезда на другой хостинг [notice: unserialize]

UPD2: При добавлении новых тем, сообщений все отображается отлично. Подскажите, как можно восстановить старые данные, чтобы кодировка была в порядке?

#10 2008-11-05 12:22:52

Spy
Гость

Re: Проблема после переезда на другой хостинг [notice: unserialize]

Проблема решена:
1. Прописал set names в mysql.php
2. Создал правильный дамп и правильно его восстановил на новом хосте. В этом мне помогла чудная программа Sypex Dumper Lite (http://sypex.net). Залил на старый хост прогу, создал там дамп бд, залил прогу на новый хост и восстановил бд. Инструкция прилагается к проге.

Подвал доски

Под управлением FluxBB. Хостинг Hostens