<commit_before><?php
#
#Autore: <NAME>
#Licenza: rilasciato sotto licenza MIT
#php_validate Versione: 1.0
#https://github.com/opetrone/php_validate
#
function valida_input($array_in,&$errore)
{
	/* Esempio Chiamata:
		valida_input( array(
			"origine"=>"post",
			"campo"=>"cap",
			"etichetta"=>"CAP",
			"tipo"=>"naturale",
			"obbligatorio"=>"si",
			"lunghezza_min"=>"5",
			"lunghezza_max"=>"5",
			"valore_min"=>"",
			"valore_max"=>"",	
		), $errore);
	
	*/
	$errore_int='';
	if ((isset($array_in["campo"]))&&(trim($array_in["campo"])!='')) {
		if (isset($array_in["etichetta"])) {
			$label=$array_in["etichetta"];
		} else {
			$label=$array_in["campo"];
		}
	} else {
		if (isset($array_in["etichetta"])) {
			$errore_int.="Nome di campo non assegnato per l'etichetta ".htmlspecialchars($label,ENT_QUOTES)."<br/>";
		} else {
			$errore_int.="Nome di campo non assegnato per uno dei campi<br />";
		}
	}
	
	if ($errore_int=='') {
		if ((isset($array_in["origine"]))&&(isset($array_in["tipo"]))) {
			switch (strtolower($array_in["origine"])) {
				case "post":
					$source=INPUT_POST;
					if ((isset($array_in["obbligatorio"])&&(strtoupper($array_in["obbligatorio"])=='SI'))) {
						if ((!(isset($_POST[$array_in["campo"]])))||(trim($_POST[$array_in["campo"]])==='')||($_POST[$array_in["campo"]]===NULL)) {
							$errore_int.="Campo ".htmlspecialchars($label,ENT_QUOTES)." obbligatorio non inserito o nullo<br/>";
						}
					}
					break;
				case "get":
					$source=INPUT_GET;
					if ((isset($array_in["obbligatorio"])&&(strtoupper($array_in["obbligatorio"])=='SI'))) {
						if ((!(isset($_GET[$array_in["campo"]])))||(trim($_GET[$array_in["campo"]])==='')||($_GET[$array_in["campo"]]===NULL)) {
						        $errore_int.="Campo ".htmlspecialchars($label,ENT_QUOTES)." obbligatorio non inserito o nullo<br/>";
						}
					}
					break;
				case "session":
					$source=INPUT_SERVER;
					if ((isset($array_in["obbligatorio"])&&(strtoupper($array_in["obbligatorio"])=='SI'))) {
						if ((!(isset($_SESSION[$array_in["campo"]])))||(trim($_SESSION[$array_in["campo"]])==='')||($_SESSION[$array_in["campo"]]===NULL)) {
							$errore_int.="Campo ".htmlspecialchars($label,ENT_QUOTES)." obbligatorio non inserito o nullo<br/>";
						}
					}
					break;
				case "cookie":
					$source=INPUT_COOKIE;
					if ((isset($array_in["obbligatorio"])&&(strtoupper($array_in["obbligatorio"])=='SI'))) {
						if ((!(isset($_COOKIE[$array_in["campo"]])))||(trim($_COOKIE[$array_in["campo"]])==='')||($_COOKIE[$array_in["campo"]]===NULL)) {
							$errore_int.="Campo ".htmlspecialchars($label,ENT_QUOTES)." obbligatorio non inserito o nullo<br/>";
						}
					}
					break;
				/*
				L'uso di ENV è deprecato, lo lascio solo come riferimento
				case "env":
					echo INPUT_ENV;
					if ((isset($array_in["obbligatorio"])&&(strtoupper($array_in["obbligatorio"])=='SI'))) {
						if ((!(isset($_ENV[$array_in["campo"]])))||(trim($_ENV[$array_in["campo"]])!=='')||($_ENV[$array_in["campo"]]!==NULL)) {
							$errore_int.="Campo ".htmlspecialchars($label,ENT_QUOTES)." obbligatorio non inserito o nullo<br/>";
						}
					}
					break;
				*/
				default:
				   $errore_int.="Errore nella sorgente dati sul campo: ".htmlspecialchars($label,ENT_QUOTES)."<br/>";
				   break;
			}
			if ($errore_int=='') {
				if (isset($array_in["tipo"])) {
					$tipo=trim($array_in["tipo"]);
					switch (trim(strtolower($array_in["tipo"]))) {
						case "numero":
							$validate=FILTER_VALIDATE_FLOAT;
							$validate_option=NULL;
							$sanitize=FILTER_SANITIZE_NUMBER_FLOAT;
							$sanitize_option=NULL;
							break;
						case "intero":
							$validate=FILTER_VALIDATE_INT;
							$validate_option=NULL;
							$sanitize=FILTER_SANITIZE_NUMBER_INT;
							$sanitize_option=NULL;
							break;
						case "naturale":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[0-9]{0,}\s{0,}$/"));
							$sanitize=FILTER_SANITIZE_NUMBER_INT;
							$sanitize_option=NULL;
							break;
						case "lista_naturali":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[0-9|]{0,}\s{0,}$/"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						case "lettere":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[a-z]+\s{0,}$/i"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						case "alfanumerico":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[a-z0-9]+\s{0,}$/i"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						case "parole":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[a-z0-9\s]+\s{0,}$/i"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						case "data":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[0-9]{2,4}[-\/]{1}[0-9]{2}[-\/]{1}[0-9]{2,4}\s{0,}$/"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						case "dataora":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[0-9]{2,4}[-\/]{1}[0-9]{2}[-\/]{1}[0-9]{2,4} [0-9]{2}:[0-9]{2}\s{0,}$/"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						/*<commit_msg>Corretta la validazione per i formati data e dataora, che non funzionavano correttamente in caso di campo nullo<commit_after><?php
#
#Autore: <NAME>
#Licenza: rilasciato sotto licenza MIT
#php_validate Versione: 1.0
#https://github.com/opetrone/php_validate
#
function valida_input($array_in,&$errore)
{
	/* Esempio Chiamata:
		valida_input( array(
			"origine"=>"post",
			"campo"=>"cap",
			"etichetta"=>"CAP",
			"tipo"=>"naturale",
			"obbligatorio"=>"si",
			"lunghezza_min"=>"5",
			"lunghezza_max"=>"5",
			"valore_min"=>"",
			"valore_max"=>"",	
		), $errore);
	
	*/
	$errore_int='';
	if ((isset($array_in["campo"]))&&(trim($array_in["campo"])!='')) {
		if (isset($array_in["etichetta"])) {
			$label=$array_in["etichetta"];
		} else {
			$label=$array_in["campo"];
		}
	} else {
		if (isset($array_in["etichetta"])) {
			$errore_int.="Nome di campo non assegnato per l'etichetta ".htmlspecialchars($label,ENT_QUOTES)."<br/>";
		} else {
			$errore_int.="Nome di campo non assegnato per uno dei campi<br />";
		}
	}
	
	if ($errore_int=='') {
		if ((isset($array_in["origine"]))&&(isset($array_in["tipo"]))) {
			switch (strtolower($array_in["origine"])) {
				case "post":
					$source=INPUT_POST;
					if ((isset($array_in["obbligatorio"])&&(strtoupper($array_in["obbligatorio"])=='SI'))) {
						if ((!(isset($_POST[$array_in["campo"]])))||(trim($_POST[$array_in["campo"]])==='')||($_POST[$array_in["campo"]]===NULL)) {
							$errore_int.="Campo ".htmlspecialchars($label,ENT_QUOTES)." obbligatorio non inserito o nullo<br/>";
						}
					}
					break;
				case "get":
					$source=INPUT_GET;
					if ((isset($array_in["obbligatorio"])&&(strtoupper($array_in["obbligatorio"])=='SI'))) {
						if ((!(isset($_GET[$array_in["campo"]])))||(trim($_GET[$array_in["campo"]])==='')||($_GET[$array_in["campo"]]===NULL)) {
						        $errore_int.="Campo ".htmlspecialchars($label,ENT_QUOTES)." obbligatorio non inserito o nullo<br/>";
						}
					}
					break;
				case "session":
					$source=INPUT_SERVER;
					if ((isset($array_in["obbligatorio"])&&(strtoupper($array_in["obbligatorio"])=='SI'))) {
						if ((!(isset($_SESSION[$array_in["campo"]])))||(trim($_SESSION[$array_in["campo"]])==='')||($_SESSION[$array_in["campo"]]===NULL)) {
							$errore_int.="Campo ".htmlspecialchars($label,ENT_QUOTES)." obbligatorio non inserito o nullo<br/>";
						}
					}
					break;
				case "cookie":
					$source=INPUT_COOKIE;
					if ((isset($array_in["obbligatorio"])&&(strtoupper($array_in["obbligatorio"])=='SI'))) {
						if ((!(isset($_COOKIE[$array_in["campo"]])))||(trim($_COOKIE[$array_in["campo"]])==='')||($_COOKIE[$array_in["campo"]]===NULL)) {
							$errore_int.="Campo ".htmlspecialchars($label,ENT_QUOTES)." obbligatorio non inserito o nullo<br/>";
						}
					}
					break;
				/*
				L'uso di ENV è deprecato, lo lascio solo come riferimento
				case "env":
					echo INPUT_ENV;
					if ((isset($array_in["obbligatorio"])&&(strtoupper($array_in["obbligatorio"])=='SI'))) {
						if ((!(isset($_ENV[$array_in["campo"]])))||(trim($_ENV[$array_in["campo"]])!=='')||($_ENV[$array_in["campo"]]!==NULL)) {
							$errore_int.="Campo ".htmlspecialchars($label,ENT_QUOTES)." obbligatorio non inserito o nullo<br/>";
						}
					}
					break;
				*/
				default:
				   $errore_int.="Errore nella sorgente dati sul campo: ".htmlspecialchars($label,ENT_QUOTES)."<br/>";
				   break;
			}
			if ($errore_int=='') {
				if (isset($array_in["tipo"])) {
					$tipo=trim($array_in["tipo"]);
					switch (trim(strtolower($array_in["tipo"]))) {
						case "numero":
							$validate=FILTER_VALIDATE_FLOAT;
							$validate_option=NULL;
							$sanitize=FILTER_SANITIZE_NUMBER_FLOAT;
							$sanitize_option=NULL;
							break;
						case "intero":
							$validate=FILTER_VALIDATE_INT;
							$validate_option=NULL;
							$sanitize=FILTER_SANITIZE_NUMBER_INT;
							$sanitize_option=NULL;
							break;
						case "naturale":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[0-9]{0,}\s{0,}$/"));
							$sanitize=FILTER_SANITIZE_NUMBER_INT;
							$sanitize_option=NULL;
							break;
						case "lista_naturali":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[0-9|]{0,}\s{0,}$/"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						case "lettere":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[a-z]+\s{0,}$/i"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						case "alfanumerico":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[a-z0-9]+\s{0,}$/i"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						case "parole":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^\s{0,}[a-z0-9\s]+\s{0,}$/i"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						case "data":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^(\s{0,}[0-9]{2,4}[-\/]{1}[0-9]{2}[-\/]{1}[0-9]{2,4}\s{0,})?$/"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						case "dataora":
							$validate=FILTER_VALIDATE_REGEXP;
							$validate_option=array("options"=>array("regexp"=>"/^(\s{0,}[0-9]{2,4}[-\/]{1}[0-9]{2}[-\/]{1}[0-9]{2,4} [0-9]{2}:[0-9]{2}\s{0,})?$/"));
							$sanitize=FILTER_SANITIZE_STRING;
							$sanitize_option=NULL;
							break;
						/*
{'fraction_non_alphanumeric': 0.2260614674009593, 'fraction_numerical': 0.010659086871558003, 'mean_word_length': 4.1084392014519056, 'pattern_counts': {'":': 28, '<': 23, '<?xml version=': 0, '>': 67, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2307998', 'n_tokens_mistral': 5597, 'n_tokens_neox': 4453, 'n_words': 475}