2
0
forked from Wavyzz/dolibarr

Correction problème de charset

Lorsque MySql est configuré par défaut en UTF-8, il était impossible d'utiliser le format ISO.
Les caractères avec accents devenaient des ?
This commit is contained in:
cdelambert
2007-07-16 08:37:36 +00:00
parent 87a16dd898
commit 463d42a9ae
5 changed files with 16 additions and 21 deletions

View File

@@ -30,7 +30,7 @@
define('DONOTLOADCONF',1); // To avoid loading conf by file inc..php define('DONOTLOADCONF',1); // To avoid loading conf by file inc..php
include_once("./inc.php"); include("./inc.php");
$setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:'auto'); $setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:'auto');
$langs->setDefaultLang($setuplang); $langs->setDefaultLang($setuplang);

View File

@@ -26,7 +26,7 @@
\version $Revision$ \version $Revision$
*/ */
include_once("./inc.php"); include("./inc.php");
if (! isset($dolibarr_main_db_prefix) || ! $dolibarr_main_db_prefix) $dolibarr_main_db_prefix='llx_'; if (! isset($dolibarr_main_db_prefix) || ! $dolibarr_main_db_prefix) $dolibarr_main_db_prefix='llx_';
define('MAIN_DB_PREFIX',$dolibarr_main_db_prefix); define('MAIN_DB_PREFIX',$dolibarr_main_db_prefix);
require_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php"); require_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php");
@@ -66,13 +66,6 @@ if ($_POST["action"] == "set")
print '<table cellspacing="0" cellpadding="4" border="0" width="100%">'; print '<table cellspacing="0" cellpadding="4" border="0" width="100%">';
$error=0; $error=0;
$conf = new Conf();// on pourrait s'en passer
$conf->db->type = $dolibarr_main_db_type;
$conf->db->host = $dolibarr_main_db_host;
$conf->db->name = $dolibarr_main_db_name;
$conf->db->user = $dolibarr_main_db_user;
$conf->db->pass = $dolibarr_main_db_pass;
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name); $db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name);
if ($db->connected == 1) if ($db->connected == 1)
{ {
@@ -149,7 +142,7 @@ if ($_POST["action"] == "set")
$requestnb++; $requestnb++;
if ($db->query($buffer)) if ($db->query($buffer))
{ {
//print "<td>OK requete ==== $buffer</td></tr>"; // print "<td>OK requete ==== $buffer</td></tr>";
} }
else else
{ {
@@ -385,7 +378,7 @@ if ($_POST["action"] == "set")
while (!feof ($fp)) while (!feof ($fp))
{ {
$buffer = fgets($fp, 4096); $buffer = fgets($fp, 4096);
print "<tr><td>Insertion ligne : $buffer</td><td>";
if (strlen(trim(ereg_replace("--","",$buffer)))) if (strlen(trim(ereg_replace("--","",$buffer))))
{ {
if ($db->query($buffer)) if ($db->query($buffer))
@@ -396,7 +389,7 @@ if ($_POST["action"] == "set")
{ {
if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS')
{ {
// print "<tr><td>Insertion ligne : $buffer</td><td> //print "<tr><td>Insertion ligne : $buffer</td><td>";
} }
else else
{ {

View File

@@ -44,7 +44,6 @@ if (file_exists($conffile))
{ {
include_once($conffile); // Fichier conf charg<72> include_once($conffile); // Fichier conf charg<72>
$charset=$character_set_client;
// Remove last / or \ on directories or url value // Remove last / or \ on directories or url value
if (! ereg('^[\\\/]+$',$dolibarr_main_document_root)) $dolibarr_main_document_root=ereg_replace('[\\\/]+$','',$dolibarr_main_document_root); if (! ereg('^[\\\/]+$',$dolibarr_main_document_root)) $dolibarr_main_document_root=ereg_replace('[\\\/]+$','',$dolibarr_main_document_root);
if (! ereg('^[\\\/]+$',$dolibarr_main_url_root)) $dolibarr_main_url_root=ereg_replace('[\\\/]+$','',$dolibarr_main_url_root); if (! ereg('^[\\\/]+$',$dolibarr_main_url_root)) $dolibarr_main_url_root=ereg_replace('[\\\/]+$','',$dolibarr_main_url_root);
@@ -54,7 +53,6 @@ if (file_exists($conffile))
{ {
require_once($dolibarr_main_document_root . "/conf/conf.class.php"); require_once($dolibarr_main_document_root . "/conf/conf.class.php");
$conf=new Conf(); $conf=new Conf();
$conf = new Conf();
$conf->db->type = trim($dolibarr_main_db_type); $conf->db->type = trim($dolibarr_main_db_type);
$conf->db->host = trim($dolibarr_main_db_host); $conf->db->host = trim($dolibarr_main_db_host);
$conf->db->name = trim($dolibarr_main_db_name); $conf->db->name = trim($dolibarr_main_db_name);
@@ -66,6 +64,7 @@ if (file_exists($conffile))
$conf->db->character_set=$dolibarr_main_db_charset; $conf->db->character_set=$dolibarr_main_db_charset;
if (! isset($collation_connection) || ! $collation_connection) $collation_connection='latin1_swedish_ci'; if (! isset($collation_connection) || ! $collation_connection) $collation_connection='latin1_swedish_ci';
$conf->db->collation_connection=$collation_connection; $conf->db->collation_connection=$collation_connection;
} }
if ($dolibarr_main_document_root && $dolibarr_main_db_type && ! defined('DONOTLOADCONF')) if ($dolibarr_main_document_root && $dolibarr_main_db_type && ! defined('DONOTLOADCONF'))
{ {

View File

@@ -165,6 +165,7 @@ class DoliDb
if (mysql_client_encoding ( $this->db ) != $this->forcecharset) if (mysql_client_encoding ( $this->db ) != $this->forcecharset)
{ {
$this->query("SET NAMES '".$this->forcecharset."'", $this->db); $this->query("SET NAMES '".$this->forcecharset."'", $this->db);
$this->query("SET CHARACTER SET ". $this->forcecharset);
} }
$this->connected = 1; $this->connected = 1;
$this->ok = 1; $this->ok = 1;
@@ -232,7 +233,8 @@ class DoliDb
//force les enregistrement en latin1 si la base est en utf8 par d<>faut //force les enregistrement en latin1 si la base est en utf8 par d<>faut
// Supprim<69> car plante sur mon PHP-Mysql. De plus, la base est forcement en latin1 avec // Supprim<69> car plante sur mon PHP-Mysql. De plus, la base est forcement en latin1 avec
// les nouvelles version de Dolibarr car forc<72> par l'install Dolibarr. // les nouvelles version de Dolibarr car forc<72> par l'install Dolibarr.
//$this->query('SET NAMES '.$this->forcecharset); $this->query("SET NAMES '".$this->forcecharset."'", $this->db);
$this->query("SET CHARACTER SET '".$this->forcecharset."'", $this->db);
//print "Resultat fonction connect: ".$this->db; //print "Resultat fonction connect: ".$this->db;
return $this->db; return $this->db;
} }

View File

@@ -163,10 +163,11 @@ class DoliDb
if ($this->db) if ($this->db)
{ {
// Si client connect<63> avec charset different de celui de Dolibarr // Si client connect<63> avec charset different de celui de Dolibarr
if (mysqli_client_encoding ( $this->db ) != $this->forcecharset) /*if (mysqli_client_encoding ( $this->db ) != $this->forcecharset)
{ {
$this->query("SET NAMES '".$this->forcecharset."'", $this->db); $this->query("SET NAMES '".$this->forcecharset."'", $this->db);
} $this->query("SET CHARACTER SET '".$this->forcecharset."'", $this->db);
}*/
$this->connected = 1; $this->connected = 1;
$this->ok = 1; $this->ok = 1;
} }
@@ -236,10 +237,11 @@ class DoliDb
// les nouvelles version de Dolibarr car forc<72> par l'install Dolibarr. // les nouvelles version de Dolibarr car forc<72> par l'install Dolibarr.
//$this->query('SET NAMES '.$this->forcecharset); //$this->query('SET NAMES '.$this->forcecharset);
//print "Resultat fonction connect: ".$this->db; //print "Resultat fonction connect: ".$this->db;
$this->query("SET NAMES '".$this->forcecharset."'", $this->db);
$this->query("SET CHARACTER SET '".$this->forcecharset."'", $this->db);
return $this->db; return $this->db;
} }
/** /**
\brief Renvoie la version du serveur \brief Renvoie la version du serveur
\return string Chaine version \return string Chaine version
@@ -355,10 +357,9 @@ class DoliDb
function query($query) function query($query)
{ {
$query = trim($query); $query = trim($query);
if (! $this->database_name) if (! $this->database_name)
{ {
// Ordre SQL ne n<>cessitant pas de connexion <20> une base (exemple: CREATE DATABASE) // Ordre SQL ne n<>cessitant pas de connexion <20> une base (exemple: CREATE DATABASE
$ret = mysqli_query($this->db,$query); $ret = mysqli_query($this->db,$query);
} }
else else
@@ -697,7 +698,7 @@ class DoliDb
$like = ''; $like = '';
if ($table) $like = "LIKE '".$table."'"; if ($table) $like = "LIKE '".$table."'";
$sql="SHOW TABLES FROM ".$database." ".$like.";"; $sql="SHOW TABLES FROM ".$database." ".$like.";";
//print $sql; // $sql;
$result = $this->query($sql); $result = $this->query($sql);
while($row = $this->fetch_row($result)) while($row = $this->fetch_row($result))
{ {