- Home
- Categorie
- Coding e Sistemistica
- Coding
- Convalida form
- 
							
							
							
							
							
aspetta aspetta forse hai capito male....le dimensioni le riesco a controllare... 
 ma vorrei che in caso di dimensioni in eccesso mi spunti un messaggio di errore e mi torni sul form COMPILATO....
 
- 
							
							
							
							
							
Scusami, allora usa il reindirizzamento di php, cambiando l'header: 
 [PHP]header("Location: pagina_del_form.html");[/PHP]Se vuoi recuperare i dati del form, per non farlo ricompilare da capo, ti consiglio di salvarli nella sessione. 
 
- 
							
							
							
							
							
se ho 3000 campi mi devo salvare tutti e 3000 campi?? 
 
- 
							
							
							
							
							
Beh, puoi copiare "rozzamente" la variabile "$_POST" nella variabile "$_SESSION['form']" per esempio, e tenere tutti i campi di quel posto a portata di mano. 
 
- 
							
							
							
							
							
mi fai un esempio per favore? 
 
- 
							
							
							
							
							
Se usi il metodo "post" per mandari i dati del form, allora potresti usare: 
 [php]$_SESSION['form'] = $_POST;[/php]
 e nella pagina html che contiene il form, puoi scrivere qualcosa del genere per ogni campo (nell'esempio text):
 [html]<input type="text" name="campo1" value="<?php echo $_SESSION['form']['campo1']; ?>" />[/html]Nel caso di checkpoint (e nel caso radio): 
 [html]<input type="checkpoint" name="check1" value="si" <?php if ($_SESSION['form']['check1'] != '') echo " checked"; ?> />[/html]Per le select puoi scrivere così: 
 [HTML]<select name="tendina1">
 <option value="1" <?php if ($_SESSION['form']['tendina1'] == "1") echo " selected"; ?>>Uno</option>
 .
 .
 .
 </select>[/HTML]Spero sia chiaro. 
 
- 
							
							
							
							
							
ma come faccio a convalidarlo? cioè a controllare che abbia riempito determinati campi? 
 perchè io uso:[PHP]if(!isset($_POST['nome']) || !isset($_POST['cognome']) || !isset($_POST['societa']) || !isset($_POST['privacy'])){ 
 echo "errore"
 }else
 //fai quello che devi fare
 [/PHP]ma così facendo, appena apro la pagina siccome quei post non sono settati mi da subito errore :S 
 
- 
							
							
							
							
							
Se usi questo metodo, prima di controllare "nome", "cognome", eccetera metti il controllo di una variabile apposita per capire se stai controllando i dati del form o li devi ancora inserire. 
 
- 
							
							
							
							
							
@momino said: Se usi il metodo "post" per mandari i dati del form, allora potresti usare: 
 [php]$_SESSION['form'] = $_POST;[/php]
 e nella pagina html che contiene il form, puoi scrivere qualcosa del genere per ogni campo (nell'esempio text):
 [html]<input type="text" name="campo1" value="<?php echo $_SESSION['form']['campo1']; ?>" />[/html]Nel caso di checkpoint (e nel caso radio): 
 [html]<input type="checkpoint" name="check1" value="si" <?php if ($_SESSION['form']['check1'] != '') echo " checked"; ?> />[/html]Per le select puoi scrivere così: 
 [HTML]<select name="tendina1">
 <option value="1" <?php if ($_SESSION['form']['tendina1'] == "1") echo " selected"; ?>>Uno</option>
 .
 .
 .
 </select>[/HTML]Spero sia chiaro. tutto chiaro...ma non funziona!! 
 non mi rimette tutto nei campi.....
 
- 
							
							
							
							
							e se salvi il modulo html in un file diverso ? [PHP] 
 if($errore[])
 {
 extract($_POST)
 include('form.inc');
 }[/PHP]
 
- 
							
							
							
							
							
ma mi sono accorto di una cosa... 
 se dopo che invio il modulo senza riempire alcuni campi mi torna sul modulo senza farmi vedere i dati precedentemente passati. se aggiorno la pagina me li fa vedere....
 è grave?