Pages: (4) [1] 2 3 4  ( Show unread post )

> Php-nuke + MySQL, Кодировка
 ego Member is Offline
 Posted: 27-10-2005, 17:04 (post 1, #485722)

Бандюга

Group: Members
Posts: 3993
Warn:0%-----
Есть проблема ,может кто сталкивался
На сервере в MySQL 4.1.10a в phpMyAdmin 2.6.4-pl1 по умолчанию выставлена кодировка UTF-8 Unicode (utf8)
Когда я заливаю базу данных из PHP-Nuke 7,9 рус которая в кодировке win cp1251 то в итоге получаю всю нюку в знаках вопросов.Пытался менять кодировку в nuke.sql (посоветуйте прогу для этого я делал ИЕ).
В файле db.php после запроса к базе добавил
}

$db = new sql_db($dbhost, $dbuname, $dbpass, $dbname, false);
mysql_query("SET NAMES 'cp1251'");
if(!$db->db_connect_id) {
тоже не помогает

Сопоставление соединения с MySQL: тоже выставлял нужную кодировку.Когда саму базу заливал тоже указывал нужную кодировку файла.
Даже незнаю что делать.Изменить кодировку по умолчанию нельзя потому как там еще бегает вобла которая нормально работает UTF-8 Unicode (utf8) кодировкой и если изменить то форум будет тогда весь в вопросиках тоже.
Хостер сказал мол
QUOTE
Выход, добавить SQL-запрос после соединения с БД:
SET NAMES cp1251

После заливки базы все таблицы в latin1_swedish_ci.Я гдето читал что можно сразу всей базе или таблицам поменять кодировку в phpMyAdmin я такой опции не нашел.
Поможет ли если изменить во всех полях кодировку вручную?
Вот теперь незнаю что делать,нужна именно эта нюка на сайте.
На предмет вопроса гуглил уже,ничего толкового не нашел
http://fanguru.com/index.php

This post has been edited by ego on 27-10-2005, 17:13
PM Email Poster ICQ
Top Bottom
 irage Member is Offline
 Posted: 27-10-2005, 17:41 (post 2, #485751)

Злобный Ункель

Group: Prestige
Posts: 990
Warn:0%-----
mysql_query ("set character_set_client='cp1251'", $link);
mysql_query ("set character_set_results='cp1251'", $link);
mysql_query ("set collation_connection='cp1251_general_ci'", $link);
PM Email Poster Users Website ICQ MSN
Top Bottom
 ego Member is Offline
 Posted: 27-10-2005, 17:49 (post 3, #485760)

Бандюга

Group: Members
Posts: 3993
Warn:0%-----
Спасибо за отклик

вставил

QUOTE
}

$db = new sql_db($dbhost, $dbuname, $dbpass, $dbname, false);
mysql_query ("set character_set_client='cp1251'", $link);
mysql_query ("set character_set_results='cp1251'", $link);
mysql_query ("set collation_connection='cp1251_general_ci'", $link);
if(!$db->db_connect_id)  {
   die("<br><br><center><b>Извините за временное неудобство.<br><br>Есть
проблема с Базой Данных $dbtype сервера.<br><br>Мы скоро вернемся.</center></b>");

получил

QUOTE
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 95

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 96

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 97

неправильный аргумент говорит,вставил только первый тоже самое толко в 95 строке
убрал переменную

, $link

получил

Parse error: parse error, unexpected $ in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 80

This post has been edited by ego on 27-10-2005, 17:58
PM Email Poster ICQ
Top Bottom
 ego Member is Offline
 Posted: 27-10-2005, 17:59 (post 4, #485767)

Бандюга

Group: Members
Posts: 3993
Warn:0%-----
вот на всяк случ весь файл

А что за переменная $link ?

<?php
/***************************************************************************
* db.php
* -------------------
* begin : Saturday, Feb 13, 2001
* copyright : (C) 2001 The phpBB Group
* email : support@phpbb.com
*
* Id: db.php,v 1.10 2002/03/18 13:35:22 psotfx Exp
*
*
***************************************************************************/

/***************************************************************************
* This file is part of the phpBB2 port to Nuke 6.0 (c) copyright 2002
* by Tom Nitzschner (tom@toms-home.com)
* http://bbtonuke.sourceforge.net (or http://www.toms-home.com)
*
* As always, make a backup before messing with anything. All code
* release by me is considered sample code only. It may be fully
* functual, but you use it at your own risk, if you break it,
* you get to fix it too. No waranty is given or implied.
*
* Please post all questions/request about this port on http://bbtonuke.sourceforge.net first,
* then on my site. All original header code and copyright messages will be maintained
* to give credit where credit is due. If you modify this, the only requirement is
* that you also maintain all original copyright messages. All my work is released
* under the GNU GENERAL PUBLIC LICENSE. Please see the README for more information.
*
***************************************************************************/

/***************************************************************************
*
* This program 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.
*
***************************************************************************/

if (stristr($_SERVER['PHP_SELF'], "db.php")) {
Header("Location: index.php");
die();
}

if (defined('FORUM_ADMIN')) {
$the_include = "../../../db";
} elseif (defined('INSIDE_MOD')) {
$the_include = "../../db";
} else {
$the_include = "db";
}

switch($dbtype) {

case 'MySQL':
include("".$the_include."/mysql.php");
break;

case 'mysql4':
include("".$the_include."/mysql4.php");
break;

case 'sqlite':
include("".$the_include."/sqlite.php");
break;

case 'postgres':
include("".$the_include."/postgres7.php");
break;

case 'mssql':
include("".$the_include."/mssql.php");
break;

case 'oracle':
include("".$the_include."/oracle.php");
break;

case 'msaccess':
include("".$the_include."/msaccess.php");
break;

case 'mssql-odbc':
include("".$the_include."/mssql-odbc.php");
break;

case 'db2':
include("".$the_include."/db2.php");
break;

}

$db = new sql_db($dbhost, $dbuname, $dbpass, $dbname, false);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
if(!$db->db_connect_id) {
die("<br><br><center><b>Извините за временное неудобство.<br><br>Есть
проблема с Базой Данных $dbtype сервера.<br><br>Мы скоро вернемся.</center></b>");
}

?>

This post has been edited by ego on 27-10-2005, 18:44
PM Email Poster ICQ
Top Bottom
 irage Member is Offline
 Posted: 27-10-2005, 20:02 (post 5, #485861)

Злобный Ункель

Group: Prestige
Posts: 990
Warn:0%-----
$link - это id соединения с базой. Попробуй заменить $link в моем примере на $db.
PM Email Poster Users Website ICQ MSN
Top Bottom
 Uzaren Member is Offline
 Posted: 27-10-2005, 20:19 (post 6, #485878)

Герой Асфальта
Group: Roots
Group: Roots
Posts: 18547
Создай файл .htaccess в нём напиши вот это
CODE
AddDefaultCharset windows-1251

И положи его в диру где лежит Nuke
PM Email Poster Users Website ICQ MSN
Top Bottom
 irage Member is Offline
 Posted: 27-10-2005, 20:22 (post 7, #485881)

Злобный Ункель

Group: Prestige
Posts: 990
Warn:0%-----
QUOTE (Uzaren @ 27-10-2005, 22:19)
Создай файл .htaccess в нём напиши вот это
CODE

AddDefaultCharset windows-1251


И положи его в диру где лежит Nuke
:fear2:

Уз, это тонкая шутка???
PM Email Poster Users Website ICQ MSN
Top Bottom
 ego Member is Offline
 Posted: 27-10-2005, 20:51 (post 8, #485898)

Бандюга

Group: Members
Posts: 3993
Warn:0%-----
irage не помогло c $db :&#040;

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 95 .................


я так понял эти запросы для того чтобы он с базой правильно работал,тоесть брал в правильной кодировке и отдавал.Но в самой базе у меня все latin1_swedish_ci.Может чего не так заливается.Локально у меня все окей с денвером а вот серваке не сложилось там мускул новее и phpMyAdmin.
Я локально сделал дамб,залил, вся таблица в поле сравнения была как положено cp1251 но вопросики не исчезли :&#040;

Uzaren это наверно для браузера?

This post has been edited by ego on 27-10-2005, 21:10
PM Email Poster ICQ
Top Bottom
 Set Member is Offline
 Posted: 27-10-2005, 21:41 (post 9, #485925)

Visionary

Group: Members
Posts: 5181
Warn:0%-----
Попробуй "SET CHARACTER SET utf8" в SQL
PM
Top Bottom
 irage Member is Offline
 Posted: 27-10-2005, 22:07 (post 10, #485944)

Злобный Ункель

Group: Prestige
Posts: 990
Warn:0%-----
Не боись, разберемся. Я тебе давал пример для родных функций PHP для работы с MYSQL, судя по всему нюк использует еще один способ, аналог ODBC. То что база по умолчанию в swedish не должно быть проблемой, самое главное всадить три SQL запроса сразу после функции соединения с базой. Можно попробовать вместо $link использовать $db, только всадить это надо после этого куска:

CODE

if(!$db->db_connect_id) {
die("<br><br><center><b>Извините за временное неудобство.<br><br>Есть
проблема с Базой Данных $dbtype сервера.<br><br>Мы скоро вернемся.</center></b>");
}


Именно здесь переменной $db присваивается идентификатор соединения. По любому, если не получится я сейчас подчитаю описание функций и твою проблему решим.
PM Email Poster Users Website ICQ MSN
Top Bottom
 irage Member is Offline
 Posted: 27-10-2005, 22:36 (post 11, #485965)

Злобный Ункель

Group: Prestige
Posts: 990
Warn:0%-----
чего то я не могу найти 6-ю версию, они уже 7-ку раздают. Запость содержание mysql4.php плиз.
PM Email Poster Users Website ICQ MSN
Top Bottom
 Uzaren Member is Offline
 Posted: 27-10-2005, 22:41 (post 12, #485968)

Герой Асфальта
Group: Roots
Group: Roots
Posts: 18547
QUOTE (irage @ 27-10-2005, 19:22)
Уз, это тонкая шутка???
У меня была похожая проблема с Invision форумом, отображалась всякая крякозябра, то есть апачи был настроен, на UTF8 , вот эта самая шутка и помогла мне.
Или я что-то не так понял?
PM Email Poster Users Website ICQ MSN
Top Bottom
 ego Member is Offline
 Posted: 27-10-2005, 23:02 (post 13, #485976)

Бандюга

Group: Members
Posts: 3993
Warn:0%-----
спасибочки irage ты меня обнадежил,мне даже неудобно. :&#041; щас попробую вставить правильно в бд.пчп

тут версия нюки 7.9

тут только mysql4.php

добавлено

QUOTE
}

$db = new sql_db($dbhost, $dbuname, $dbpass, $dbname, false);
if(!$db->db_connect_id) {
   die("<br><br><center><img src=images/logo.gif><br><br><b>There seems to be a problem with the $dbtype server, sorry for the inconvenience.<br><br>We should be back shortly.</center></b>");
mysql_query ("set character_set_client='cp1251'", $db);
mysql_query ("set character_set_results='cp1251'", $db);
mysql_query ("set collation_connection='cp1251_general_ci'", $db);
}

?>

ничего

опустил за }

получил

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 98/99/100

This post has been edited by ego on 27-10-2005, 23:16
PM Email Poster ICQ
Top Bottom
 ego Member is Offline
 Posted: 27-10-2005, 23:18 (post 14, #485983)

Бандюга

Group: Members
Posts: 3993
Warn:0%-----
QUOTE (Uzaren @ 27-10-2005, 11:41)
QUOTE (irage @ 27-10-2005, 19:22)
Уз, это тонкая шутка???
У меня была похожая проблема с Invision форумом, отображалась всякая крякозябра, то есть апачи был настроен, на UTF8 , вот эта самая шутка и помогла мне.
Или я что-то не так понял?
мне кажется ,но я не уверен :&#041; это чтобы браузер с нужной кодировкой открывал.
Я пробовал не то
PM Email Poster ICQ
Top Bottom
 irage Member is Offline
 Posted: 27-10-2005, 23:57 (post 15, #485998)

Злобный Ункель

Group: Prestige
Posts: 990
Warn:0%-----
Хм. ООП. Это конечно хоорошо, но не всегда я люблю ООП. Можно попробовать так (это кусок mysql4.php):

CODE

//
// Base query method
//
function sql_query($query = "", $transaction = FALSE)
{
//
// Remove any pre-existing queries
//
unset($this->query_result);

if( $query != "" )
{
$this->num_queries++;
if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction )
{
$result = mysql_query("BEGIN", $this->db_connect_id);
if(!$result)
{
return false;
}
$this->in_transaction = TRUE;
}

$this->query_result = mysql_query($query, $this->db_connect_id);



так вот, можно перед последней строкой $this->query_result = mysql_query($query, $this->db_connect_id); вставить:

CODE

$this->query_result = mysql_query("set character_set_client='cp1251'", $this->db_connect_id);
$this->query_result = mysql_query("set character_set_results='cp1251'", $this->db_connect_id);
$this->query_result = mysql_query("set collation_connection='cp1251_general_ci'", $this->db_connect_id);
PM Email Poster Users Website ICQ MSN
Top Bottom
Topic Options Pages: (4) [1] 2 3 4