ciao a tutti,
ho un quesito su cui sto facendo delle prove:
esiste una funzione nativa php che verifica i dati ($_POST /$_GET) di un INPUT di un form. l'input è tipo:
<input type="text" name="nome[]" value="">
grazie
![]()
ciao a tutti,
ho un quesito su cui sto facendo delle prove:
esiste una funzione nativa php che verifica i dati ($_POST /$_GET) di un INPUT di un form. l'input è tipo:
<input type="text" name="nome[]" value="">
grazie
![]()
Non è che abbia capito molto bene la tua richiesa, ma da un'occhiata a filter_var(), potrebbe essere ciò che cerchi.
adesso guardo...
per spiegarti: in presenza di un form
dove gli input sono il risultato di un foreach($array as $dati)
si predispongono gli input con il " name="nome[]" ".
quando con php si elaborano i dati, l'array $_POST (ad esempio) contiene diversi valori (tanti quanti sono gli input con name="nome[]"). Il punto è, appunto, verificare che i diversi valori corrispondano alle esigenze. ad esempio che siano stringhe o numeri o altro...
spero che sia comprensibile..
fammi sapere...![]()
Verificare semplicemente se un dato è una stringa ha poco senso, praticamente tutto in PHP può essere considerato una stringa.
Ha senso invece verificare se si tratta di un numero o una stringa che segue delle regole precise (per esempio che abbia una lnghezza minima, che sia un indirizzo email valido...).
Per fare queste verifiche ci sono diverse funzioni, per esempio per verificare che arrivi un numero ineroopuoi usare is_int(), per verificare che una stringa abbia una certa lunghezza puoi usare strlen(), per verificare un indirizzo email puoi usare filter_var()... insomma sì, funzioni native ci sono, bisogna solo sapere che ti po di dato devi verificare.
un esempio : il form...
il php che elabora..Codice PHP:
<?php
$arr=array('uno','due');
?>
<form method="post" action="formTesto.php">
<?php foreach($arr as $value):?>
<input type="text" name="numero[]" value="">
<?php endforeach;?>
<input type="submit" name="submit">
</form>
ho provato cosi ma non riesco ad avere il primo echoCodice PHP:
if(is_int($_POST['numero']))
{ echo "è un numero";}else {echo "non è un numero";}
Perché se come name del campo metti numero[] per lo script PHP $_POST['numero'] è un array, non una variabile semplice, prova a scrivere
print_r($_POST['numero']);
vedi cosa ti stampa.
già fattofunzionano bene in ambo i modi...Codice PHP:
print_r($_POST);
print_r($_POST['numero']);
ma potrei avere la necessità continuare il codice una volta che ho la certezza che quei valori sono numeri e quindi continuare con successivo codice. è qui, credo, che mi serve una funzione (nativa?) che controlli la veridicità dei dati... o no?
![]()
Ma certo che funzionano, vuoi che print_r() non stampi niente?
Ti ho chiesto di guardare COSA viene stampato da print_r($_POST['numero']), non se print_r($_POST['numero']) stampa qualcosa.
Ti accorgerai che stampa un array, quindi $_POST['numero'] è un array (nota bene, non $_POST, ma $_POST['numero']), non sarà mai né un numero, né una stringa, né altro, è un array.
ecco adesso, con php, come faccio a controllare che questo array contiene sono numeri?Codice PHP:
Array ( [numero] => Array ([0] => 1 [1] => 2 )
Fai un foreach su tale array e ad ogni iterazione controlli se hai un numero o no.