- Home
- Categorie
- Coding e Sistemistica
- PHP
- 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?