Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [JS/Html/Php/MySql] Formato dei dati passati

    ho fatto la mia prima pagina dinamica che interagisce ovviamente con tutti i linguaggi sopra citati e vedo che ci sono diversi errori collegati ai diversi formati che ogni linguaggio usa, per non parlare del fatto che gli input dai form html non hanno genere.

    domanda: c'è modo di allineare il tutto o ad ogni passaggio di linguaggio devo fare le opportune correzioni di formato? voi come fate di solito? :master:
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  2. #2
    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;
    }
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  3. #3
    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;
    }
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  4. #4
    ovviamente l'uso è finalizzato a MySql tuttavia nulla esclude di usarle in semplice Php ...ad eccezione delle funzioni sulle date che funzionano solo se usate con MySql !!! sempre che qualcuno non proponga una soluzione universale
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.