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

---
 interface/lib/classes/tform_base.inc.php    | 6 +++---
 interface/web/sites/form/ftp_user.tform.php | 3 +--
 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 03ccb1e4f2..599cce4a9c 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -831,7 +831,7 @@ class tform_base {
 				}
 
 				//* 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 @@ class tform_base {
 							}
 						} 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 @@ class tform_base {
 								$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 324fb612a7..239bfdb858 100644
--- a/interface/web/sites/form/ftp_user.tform.php
+++ b/interface/web/sites/form/ftp_user.tform.php
@@ -296,8 +296,7 @@ if($app->auth->is_admin()) {
 
 $form['tabs']['advanced']['fields']['expires'] = array(
 	'datatype' => 'DATETIME',
-	'formtype' => 'DATETIME',
-	'default' => null
+	'formtype' => 'DATETIME'
 );
 
 
-- 
GitLab