From 9b89182d4e71dee30a69793a6c714941d8bc16cc Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Tue, 19 Jan 2010 10:53:43 -0500
Subject: [PATCH] Improved input checks in the DNS wizard. Related to: FS#939 - DNS Bug

---
 interface/lib/classes/db_mysql.inc.php |   51 ++++++++++++++++++++++++++++-----------------------
 1 files changed, 28 insertions(+), 23 deletions(-)

diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php
index 6caf0c9..9c4871f 100644
--- a/interface/lib/classes/db_mysql.inc.php
+++ b/interface/lib/classes/db_mysql.inc.php
@@ -1,14 +1,7 @@
 <?php
-/**
- * mySQL Database class
- * 
- * @author Till Brehm
- * @copyright  2005, Till Brehm, projektfarm Gmbh
- * @version 0.2
- * @package ISPConfig
- */
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -35,8 +28,7 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-class db
-{
+class db {
 	private $dbHost = '';		   // hostname of the MySQL server
 	private $dbName = '';		   // logical database name on that server
 	private $dbUser = '';		   // database authorized user
@@ -225,23 +217,14 @@
     }
 	*/
 	
-	//** Function to fill the datalog with a full differential record.
-	public function datalogSave($db_table, $action, $primary_field, $primary_id, $record_old, $record_new) {
-		global $app,$conf;
-
-		// Insert backticks only for incomplete table names.
-		if(stristr($db_table,'.')) {
-			$escape = '';
-		} else {
-			$escape = '`';
-		}
-
+	public function diffrec($record_old, $record_new) {
 		$diffrec_full = array();
 		$diff_num = 0;
 
 		if(is_array($record_old) && count($record_old) > 0) {
 			foreach($record_old as $key => $val) {
-				if(!isset($record_new[$key]) || $record_new[$key] != $val) {
+				// if(!isset($record_new[$key]) || $record_new[$key] != $val) {
+				if($record_new[$key] != $val) {
 					// Record has changed
 					$diffrec_full['old'][$key] = $val;
 					$diffrec_full['new'][$key] = $record_new[$key];
@@ -265,12 +248,34 @@
 			}
 		}
 		
+		return array('diff_num' => $diff_num, 'diff_rec' => $diffrec_full);
+		
+	}
+	
+	//** Function to fill the datalog with a full differential record.
+	public function datalogSave($db_table, $action, $primary_field, $primary_id, $record_old, $record_new) {
+		global $app,$conf;
+
+		// Insert backticks only for incomplete table names.
+		if(stristr($db_table,'.')) {
+			$escape = '';
+		} else {
+			$escape = '`';
+		}
+
+		$tmp = $this->diffrec($record_old, $record_new);
+		$diffrec_full = $tmp['diff_rec'];
+		$diff_num = $tmp['diff_num'];
+		unset($tmp);
+		
 		// Insert the server_id, if the record has a server_id
 		$server_id = (isset($record_old["server_id"]) && $record_old["server_id"] > 0)?$record_old["server_id"]:0;
 		if(isset($record_new["server_id"])) $server_id = $record_new["server_id"];
 		
 
 		if($diff_num > 0) {
+			//print_r($diff_num);
+			//print_r($diffrec_full);
 			$diffstr = $app->db->quote(serialize($diffrec_full));
 			$username = $app->db->quote($_SESSION["s"]["user"]["username"]);
 			$dbidx = $primary_field.":".$primary_id;

--
Gitblit v1.9.1