Browse Source

Correction db_object date

Moulin Mathieu 4 years ago
parent
commit
e6aff55943
1 changed files with 26 additions and 37 deletions
  1. 26 37
      include/class/db_object.class.inc.php

+ 26 - 37
include/class/db_object.class.inc.php

@@ -546,28 +546,22 @@ if (!is_array($info))
 
 foreach($info as $name=>&$value)
 {
-	if (!isset($this->_manager->_fields[$name]))
-	{
+	if (!isset($this->_manager->_fields[$name])) {
 		unset($info[$name]);
 	}
-	else
-	{
+	else {
 		$field = $this->_manager->_fields[$name];
-		if (isset($field["type"]))
-		{
+		if (isset($field["type"])) {
 			$type = $field["type"];
-			if (in_array($type, array("int", "float", "numeric", "decimal")))
-			{
+			if (in_array($type, array("int", "float", "numeric", "decimal"))) {
 				if (!is_numeric($value)) {
 					$value = NULL;
 				}
 			}
-			elseif ($type == "boolean")
-			{
+			elseif ($type == "boolean") {
 				$value = ($value) ?1 :0;
 			}
-			elseif ($type == "object")
-			{
+			elseif ($type == "object") {
 				if (!is_numeric($value)) {
 					$value = NULL;
 				}
@@ -577,64 +571,60 @@ foreach($info as $name=>&$value)
 						$value = NULL;
 				}
 			}
-			elseif (in_array($type, array("string", "text", "richtext")))
-			{
+			elseif (in_array($type, array("string", "text", "richtext"))) {
 				if (!is_string($value)) {
 					$value = NULL;
 				}
 			}
-			elseif ($type == "select")
-			{
+			elseif ($type == "select") {
 				if ((!is_string($value) && !is_numeric($value)) || !isset($field["list"][$value])) {
 					$value = NULL;
 				}
 			}
-			elseif ($type == "select_multiple")
-			{
+			elseif ($type == "select_multiple") {
 				if (!is_array($value)) {
 					$value = NULL;
 				}
-				else
-				{
+				else {
 					foreach($value as $i=>$v)
 						if (!isset($field["list"][$v]))
 							unset($value[$i]);
 				}
 			}
-			elseif ($type == "date")
-			{
+			elseif ($type == "date") {
 				if (!is_string($value)) {
 					$value = NULL;
 				}
-				elseif (true) {
+				elseif (preg_match("/^(0[1-9]|[1-2][0-9]|3[0-1])\/(0[1-9]|1[0-2])\/([0-9]{4})$/", $value)) {
+					$e = explode("/", $value);
+					$e = array_reverse($e);
+					$value = implode("-", $e);
+				}
+				elseif (!preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $value)) {
+					$value = NULL;
 				}
 			}
-			elseif (in_array($type, array("datetime", "timestamp")))
-			{
+			elseif (in_array($type, array("datetime", "timestamp"))) {
 				if (!is_string($value)) {
 					$value = NULL;
 				}
+				//elseif (!preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $value)) {
 			}
-			elseif (in_array($type, array("img", "file")))
-			{
+			elseif (in_array($type, array("img", "file"))) {
 				//var_dump($_FILES);
 				// Sans upload ou upload foireux
 				if (isset($_FILES[$name]) && (!$_FILES[$name]["tmp_name"] || $_FILES[$name]["error"] != UPLOAD_ERR_OK)) {
 					unset($_FILES[$name]);
 				}
 				// Fichier sans nom ou nom foireux
-				if (isset($_FILES[$name]))
-				{
-					if (isset($field["filename"]))
-					{
+				if (isset($_FILES[$name])) {
+					if (isset($field["filename"])) {
 						$_FILES[$name]["name"] = $this->field_map_replace($field["filename"]);
 					}
-					else
-					{
+					else {
 						$nb = 0;
 						$name = $field["filename"];
-						while (file_exists(PATH_ROOT."/".$field["folder"]."/".$_FILES[$name]["name"]))
-						{
+						while (file_exists(PATH_ROOT."/".$field["folder"]."/".$_FILES[$name]["name"])) {
 							$nb++;
 							$_FILES[$name]["name"] = $nb."-".$name;
 						}
@@ -642,8 +632,7 @@ foreach($info as $name=>&$value)
 					$value = $_FILES[$name]["name"];
 				}
 				// Renommage sans fichier
-				elseif ($value && (isset($field["filename"]) || !$this->$name || !file_exists(PATH_ROOT."/".$field["folder"]."/".$this->$name)))
-				{
+				elseif ($value && (isset($field["filename"]) || !$this->$name || !file_exists(PATH_ROOT."/".$field["folder"]."/".$this->$name))) {
 					//echo PATH_ROOT."/".$field["folder"]."/".$this->$name;
 					unset($info[$name]);
 				}