tbrehm
2010-02-10 e65b04a9bf37a5aa108d8b2e9d5b42c3edc7f952
Fixed general utf8 encoding problems when data is passed from frontend to server, this fixes also bug FS#1065 - Special characters in autoresponder subject may break the autoresponder 
3 files modified
15 ■■■■ changed files
interface/lib/classes/db_mysql.inc.php 1 ●●●● patch | view | raw | blame | history
server/lib/classes/db_mysql.inc.php 2 ●●●●● patch | view | raw | blame | history
server/lib/classes/modules.inc.php 12 ●●●●● patch | view | raw | blame | history
interface/lib/classes/db_mysql.inc.php
@@ -76,6 +76,7 @@
                return false;
            }
            $this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
            $this->queryId = @mysql_query("SET character_set_results = '".$this->dbCharset."', character_set_client = '".$this->dbCharset."', character_set_connection = '".$this->dbCharset."', character_set_database = '".$this->dbCharset."', character_set_server = '".$this->dbCharset."'", $this->linkId);
        }
        return true;
    }
server/lib/classes/db_mysql.inc.php
@@ -80,6 +80,8 @@
                    $this->updateError('DB::connect()-> mysql_connect');
                    return false;
                }
                $this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
                $this->queryId = @mysql_query("SET character_set_results = '".$this->dbCharset."', character_set_client = '".$this->dbCharset."', character_set_connection = '".$this->dbCharset."', character_set_database = '".$this->dbCharset."', character_set_server = '".$this->dbCharset."'", $this->linkId);
            }
            return true;
        }
server/lib/classes/modules.inc.php
@@ -94,16 +94,18 @@
            foreach($records as $d) {
                
                //** encode data to utf-8 and unserialize it
                if(!$data = unserialize(utf8_encode(stripslashes($d["data"])))) {
                    $data = unserialize(utf8_encode($d["data"]));
                if(!$data = unserialize(stripslashes($d["data"]))) {
                    $data = unserialize($d["data"]);
                }
                //** Decode data back to locale
                /*
                foreach($data['old'] as $key => $val) {
                    $data['old'][$key] = utf8_decode($val);
                }
                foreach($data['new'] as $key => $val) {
                    $data['new'][$key] = utf8_decode($val);
                }
                */
                
                $replication_error = false;
                
@@ -188,16 +190,18 @@
            foreach($records as $d) {
                
                //** encode data to utf-8 to be able to unserialize it and then unserialize it
                if(!$data = unserialize(utf8_encode(stripslashes($d["data"])))) {
                    $data = unserialize(utf8_encode($d["data"]));
                if(!$data = unserialize(stripslashes($d["data"]))) {
                    $data = unserialize($d["data"]);
                }
                //** decode data back to current locale
                /*
                foreach($data['old'] as $key => $val) {
                    $data['old'][$key] = utf8_decode($val);
                }
                foreach($data['new'] as $key => $val) {
                    $data['new'][$key] = utf8_decode($val);
                }
                */
                
                $this->current_datalog_id = $d["datalog_id"];
                $this->raiseTableHook($d["dbtable"],$d["action"],$data);