ho partorito questo, che ne dite? si può migliorare?
sono funzioni da usare per filtrare le comunicazioni tra HTML e PHP/MYSQL
C=Client S=Server
sono in 3 categorie: Numeri, Testi, Date
agisce su: SqlInectin e Formati Internazionali
c'è la possibilità di personalizzare il formato sulla base della lingua salvato in un cookie
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("." => "", "," => ".");
$risultato=strtr($valore, $conversioni);
break;
default: $conversioni = array("," => "");
$risultato=strtr($valore, $conversioni);
}
return $risultato;
// SICUREZZA: estrapola solo il numero
preg_replace("/([\d\.]+)/e","\$risultato=$1;",$valore);
// FORMATTAZIONE NATURA: converte stringa in numero decimale
return 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=date('d.m.y',strtotime($valore)); break;
default: $risultato=date('m.d.y',strtotime($valore)); }
return $risultato;
}