Originariamente inviato da lorenz_italy
Ho un semplice problema

Io faccio così:

<input type="double".....>
avevo letto questo 3D ... aspettavo solo questo problema

is_numeric è una funzione relativamente inutile, soprattutto se i dati devono arrivare "dall' esterno" (e una input può essere text, mai double o int) .

is_int ed is_float non ti serviranno a niente invece, perchè daranno true solo se il dato è di tipo int, o float, per l'appunto.

Quando invii in GET o POST php considera sempre stringhe, queste variabili.

una funzione utile potrebbe essere questa:
codice:
function is_number($n) {
	if(preg_match("/^[0-9]+$/", $n))
		$result = (int) $n;
	elseif(preg_match("/^[0-9]*\.[0-9]+$/", $n))
		$result = (double) $n;
	else
		$result = false;
	return $result;
}


// esempio
if(is_number($_POST['data']) !== false)
	echo is_int($_POST['data']) ? 'int' : 'float';
notare la parte in bold per il controllo, essenziale per il corretto parse del risultato.