Che strano, se nel campo inserisco il numero 0 (solo questo, non asociato ad altri caratteri) esce l'alert![]()
Codice PHP:
if (empty($messaggio))
$errore .= "Inserire il Messaggio";
Che strano, se nel campo inserisco il numero 0 (solo questo, non asociato ad altri caratteri) esce l'alert![]()
Codice PHP:
if (empty($messaggio))
$errore .= "Inserire il Messaggio";
Non c'è niente da capire, è l'implementazione di empty.
http://it2.php.net/manual/it/function.empty.php
Ho visto, quale codice applico per farlo riconoscere come carattere?Originariamente inviato da kylnas1
Non c'è niente da capire, è l'implementazione di empty.
http://it2.php.net/manual/it/function.empty.php![]()
Per controllare che non sia una stringa vuota:
Oppure per controllare che la variabile sia settata:Codice PHP:
if ($messaggio !== "")
Codice PHP:
if (isset($messaggio))
Strumenti per Webmaster gratuiti by IceLab
Ho messo come dici tu e sembra funzionare, dimmi se ho capito bene:Originariamente inviato da Cerebro
if( $messaggio === '' )
![]()
Codice PHP:
if( $nome === '' ) // anche 0 viene riconosciuto come carattere
if (empty($nome)) // 0 non viene riconosciuto come carattere
E' semplice.Originariamente inviato da Braco
Codice PHP:
if( $nome === '' ) // anche 0 viene riconosciuto come carattere
== controlla l'ugualianza tra variabili, non considerando il tipo. Esempio: 2 == "2" è vera.
=== controlla che sia uguale anche il tipo. Esempio 2 === "2" è falsa.
Ho notato però che per js non funziona if(f.nome.value === "")Originariamente inviato da JoeP
E' semplice.
== controlla l'ugualianza tra variabili, non considerando il tipo. Esempio: 2 == "2" è vera.
=== controlla che sia uguale anche il tipo. Esempio 2 === "2" è falsa.VVoVe:
Ahbbò, di JS non so quasi niente. Comunque non ti stupire. Quell'affare lì è una caratteristica peculiare del PHP...Originariamente inviato da Braco
Ho notato però che per js non funziona if(f.nome.value === "")VVoVe:
Sì quel troiaio in PHP controlla anche il tipo delle variabili messe a confronto.
Caso tipico di uso del === è nel test di strpos()
A prima vista uno potrebbe dire "è un test per vedere se $ago è contenuto in $pagliaio" perchè, se non viene trovato ritorna FALSE. Ma invece potrebbe ritornare 0 ovvero lo trova in posizione 0 e il test fallirebbe perchè 0 viene interpretato come FALSE.Codice PHP:
if( strpos( $pagliaio, $ago ) == FALSE ) ...
La maniera corretta di fare quel tipo di test infatti è:
Codice PHP:
if( strpos( $pagliaio, $ago ) === FALSE ) ...