From e65b04a9bf37a5aa108d8b2e9d5b42c3edc7f952 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 10 Feb 2010 08:25:34 -0500
Subject: [PATCH] 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 

---
 server/lib/classes/db_mysql.inc.php    |    2 ++
 server/lib/classes/modules.inc.php     |   12 ++++++++----
 interface/lib/classes/db_mysql.inc.php |    1 +
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php
index a358598..3146a0f 100644
--- a/interface/lib/classes/db_mysql.inc.php
+++ b/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;
 	}
diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php
index 1a3b978..2cd6e22 100644
--- a/server/lib/classes/db_mysql.inc.php
+++ b/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;
 		}
diff --git a/server/lib/classes/modules.inc.php b/server/lib/classes/modules.inc.php
index fd8e473..aa4a2ed 100644
--- a/server/lib/classes/modules.inc.php
+++ b/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);

--
Gitblit v1.9.1