From 7537db5ff13f696e943908a38293080e39c9e709 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Tue, 03 May 2016 09:28:46 -0400
Subject: [PATCH] - Invalid value written to DB on "null" Fixes #3862

---
 interface/web/sites/form/ftp_user.tform.php |    3 +--
 interface/lib/classes/tform_base.inc.php    |    6 +++---
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php
index 03ccb1e..599cce4 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -831,7 +831,7 @@
 				}
 
 				//* Add slashes to all records, when we encode data which shall be inserted into mysql.
-				if($dbencode == true) $new_record[$key] = $app->db->quote($new_record[$key]);
+				if($dbencode == true && !is_null($new_record[$key])) $new_record[$key] = $app->db->quote($new_record[$key]);
 			}
 		}
 		return $new_record;
@@ -1244,7 +1244,7 @@
 							}
 						} else {
 							$sql_insert_key .= "`$key`, ";
-							$sql_insert_val .= "'".$record[$key]."', ";
+							$sql_insert_val .= (is_null($record[$key]) ? 'NULL' : "'".$record[$key]."'") . ", ";
 						}
 					} else {
 						if($field['formtype'] == 'PASSWORD') {
@@ -1271,7 +1271,7 @@
 								$sql_update .= "`$key` = '".$record[$key]."', ";
 							}
 						} else {
-							$sql_update .= "`$key` = '".$record[$key]."', ";
+							$sql_update .= "`$key` = " . (is_null($record[$key]) ? 'NULL' : "'".$record[$key]."'") . ", ";
 						}
 					}
 				} else {
diff --git a/interface/web/sites/form/ftp_user.tform.php b/interface/web/sites/form/ftp_user.tform.php
index 324fb61..239bfdb 100644
--- a/interface/web/sites/form/ftp_user.tform.php
+++ b/interface/web/sites/form/ftp_user.tform.php
@@ -296,8 +296,7 @@
 
 $form['tabs']['advanced']['fields']['expires'] = array(
 	'datatype' => 'DATETIME',
-	'formtype' => 'DATETIME',
-	'default' => null
+	'formtype' => 'DATETIME'
 );
 
 

--
Gitblit v1.9.1