- Home
- Categorie
- Coding e Sistemistica
- PHP
- Controllare variabili da form con empty() o isset()
-
Controllare variabili da form con empty() o isset()
Ciao,
ho un form in php che passa variabili in "get".
Prima di passarle alal pagina successiva voglio eseguire un controllo per evitare di passare le variabili che sono a zero, quindi faccio:while(list($chiave,$valore)=each($_GET)) {
if (isset($valore)) {
$stringa_get .= $chiave."=".$valore."&";
}
else {}
}
Però non mi funziona...
Ho provato anche a "saltare" le variabili uguali a zero con:
while(list($chiave,$valore)=each($_GET)) {
if ($valore == 0) {
}
else {
$stringa_get .= $chiave."=".$valore."&";
}
}ma ... si, le variabili pari a 0 le salte ma mi salta anche quelle "non numeriche" (invece quelle numeriche diverse da zero le passa..)
Mi potete perfavore dare una mano a capire come risolvere?
Grazie infinite,
ciao!
-
Perchè non fare un controllo lato Client?
-
Ciao,
si, lato client con javascript, hai mica per caso qualcosa (tutorial, guida..) da suggerirmi su come fare?Comunque, però, la domanda iniziale mia rimane: come mai quel codice PHP non funziona? Dove è l'errore? Ci sarà un modo per farlo funzionare..
Vorrei capire...
Grazie comunque!
ciao ciao!
-
Purtroppo non conosco bene php...
Ma la sintassi list($chiave,$valore)=each($_GET) è corretta?
La clausola list vuole che le vengano assegnate due valori, chiave e valore appunto.
Mentre each ne restituisce due o uno? Non restituisce solo il valore della variabile GET?
-
Quella sintassi è giusta.
In pratica each ritorna un array contenente la chiave ed il valore di uno specifico elemento dell'array, ed avanza il seeker nell'array di un punto. Nel while questa cosa ti permette di avere chiave e valore di ogni elemento.
Comunque, io userei un foreach, è stato inventato apposta questo costrutto!
Prova con:
[php]
foreach($_GET AS $chiave => $valore)
if(is_null($valore) OR $valore == '')
die("Ommioddio, una variabile non settata!!");
[/php]
-
Ciao,
si, la cosa funziona parzialmente, come faceva prima.. ufffffffffff!!
Il fatto strano che non fa funzionare il ciclo è che sembra non "capire" il tipo di dati...Se gli scrivo:
if(is_null($valore))...
mi passa ugualmente le variabili che hanno $valore=0Se gli scrivo:
if(is_null($valore) OR $valore==0)....
mi blocca anche variabili che sono del tipo "WYETR-or-45-nero"non riesco veramente avenire a capo di queste bizzarrie...
grazie ancora!
ciao!
-
Per un controllo esteso al tipo di dati, usa l'operatore ===
[php]
/// bla bla bla
if(is_null($valore) OR $valore == '' OR $valore === 0)
// bla bla bla
[/php]
-
Ciao,
nulla da fare purtroppo..Il problema è che, se io scrivo:
if ($valore == 0) {
...Lui mi interpreta come 0 anche valori come:
"Q2610A-44.90-comp-Nero"
"Si"
"Riepilogo Ordine"Se invece scrivo:
if ($valore === 0) {
...Allora niente equivale strettamente a zero...
Non mi abbandonate
Grazie infinite,
ciao!