- Home
- Categorie
- Coding e Sistemistica
- Coding
- Un semplice ciclo di controllo
-
Un semplice ciclo di controllo
Ho fatto un form normale con un campo (chiave) e i tasti reset e submit.
La pagina php alla quale vengono indirizzati i dati inseriti ha uno script il cui inizio è il seguente:if($_POST[chiave]=="") { print("<font size=2> Nessun valore associato "); exit();} if($_POST[chiave]==" ") { print("<font size=2> Nessun valore associato EXIT 1"); exit();} if($_POST[chiave]==" ") { print("<font size=2> Nessun valore associato EXIT 2"); exit();} if($_POST[chiave]==" ") { print("<font size=2> Nessun valore associato EXIT 3"); exit();} if($_POST[chiave]==" ") { print("<font size=2> Nessun valore associato EXIT 4"); exit();} if($_POST[chiave]==" ") { print("<font size=2> Nessun valore associato EXIT 5"); exit();}
In pratica qualora il visitatore dovesse inserire uno spazio il controllo riportato sopra da il risultato EXIT 1
Se inserisce 2 spazi EXIT 2 e così via fino a 5 spazi.
Questo va bene funziona ma lo trovo banale e limitato.
Ho provato a fare qualcosa con il FOR { }.
E anche qualcos'altro usando la funzione strlen().
Ma non sono riuscito. Mi suggerite qualcosa?
-
puoi provare con
preg_match_all
che conta le occorenze di una stringa data una espressione regolare
$n=preg_match_all("/[ ]/",$_POST[chiave],$finto); if($n>0){ print("<font size=2> Nessun valore associato EXIT $n"); exit(); }
occhio che non conta gli spazi adiacenti, ma TUTTI gli spazi nella stringa
ciao
-
Scritto al volo e non testato:
if (!trim ($_POST['chiave'])) { echo "<font size=2> Nessun valore associato "; if ($n = strlen ($_POST['chiave']) { echo "EXIT $n"; } exit (); }
Occhio a chiudere il tag font (anzi, meglio non usarlo per niente e preferire i CSS).
-
non sono sicuro che funziona, ma teoricamente così può andare
$num_spazi = strlen($_POST[chiave]); echo '<font size="2"> Nessun valore associato EXIT' . $num_spazi; exit();
p.s. ci vorrebbe il tag [php] sul forum
-
così sti stampa la lunghezza della stringa non il numero di spazi
la soluzione di low sembra la migliore
-
@riky78 said:
così sti stampa la lunghezza della stringa non il numero di spazi
la soluzione di low sembra la migliore
Infatti così va veramente bene però nel codice è stata omessa una parentesi tonda...
Comunque tutto perfetto THK