alcune correzioni:
- un errore di sintassi
- l'assenza di data produceva la data odierna
- i non numeri producevano il numero zero che non deve esserci se nessuno l'ha scritto zero

codice:
function C2Stext($valore){
	// SICUREZZA
	// l'opzione Mysql_Escape_String attiva di deafult in PHP mette l'escape in automatico quando trova ' " NUL \
	// per gli altri caratteri speciali li tolgo a mano
	$CaratteriSpeciali = array("%", "_", "*");
	return str_replace($CaratteriSpeciali, "", $valore);
}
function C2Snumr($valore){
	// FORMATTAZIONE NAZIONE: converte in formato PC
	switch($_COOKIE['Lin']){
		case 'ita': $conversioni = array("." => "", "," => ".");
								$valore=strtr($valore, $conversioni);
								break;
		default:		$conversioni = array("," => "");
								$valore=strtr($valore, $conversioni);
								}
	// SICUREZZA: estrapola solo il numero
	preg_replace("/([\d\.]+)/e","\$risultato=$1;",$valore);
	// FORMATTAZIONE NATURA: converte stringa in numero decimale
	return ($risultato=="")?"":floatval($risultato);
}
function C2Sdata($valore){
	// SICUREZZA e FORMATTAZIONE: estrapola solo la stringa "mm-gg-aaaa" (formato Sql) della data in qualunque modo sia scritta
	switch($_COOKIE['Lin']){
		case 'ita': preg_replace("/(([\d]{1,2})\D([\d]{1,2})\D([\d]{2,4}))/e","\$risultato=\"$3-$2-$4\";",$valore); break;
		default:		preg_replace("/(([\d]{1,2})\D([\d]{1,2})\D([\d]{2,4}))/e","\$risultato=\"$2-$3-$4\";",$valore);  }
	return $risultato;
}



function S2Ctext($valore){
	return stripslashes($valore);
}
function S2Cnumr($valore){
	// FORMATTAZIONE NAZIONE
	switch($_COOKIE['Lin']){
		case 'ita': $risultato=str_replace('.',',',$valore); break;
		default:		$risultato=$valore; }
	return $risultato;
}
function S2Cdata($valore){
	// FORMATTAZIONE NAZIONE
	switch($_COOKIE['Lin']){
		case 'ita':	$risultato= ($valore!="") ? date('d.m.y',strtotime($valore)) : ""; break;
		default:		$risultato= ($valore!="") ? date('m.d.y',strtotime($valore)) : ""; }
	return $risultato;
}