- Home
- Categorie
- Coding e Sistemistica
- PHP
- Convalida Form
-
Ciao pabloso
non ti esce l'errore perché la tua variabile $error non viene mai fatta stampare a video (non c'è nessuna echo)
-
Grazie per la risposta PietroR !
Perdona la mia ignoranza ma devo dare un valore a $error e la riga sotto scrivere echo 'you must enter your name.' ? Come posso fare?
Grazie Ciao
-
Ciao
$error è già valorizzato in realtà, con questo codiceif ([empty](http://www.giorgiotave.it/wikigt/os/Empty)($name)) $error = 'You must enter your name.';
e qua controllo che l'errore ci sia
if (isset($error)) { header('Location: services3da.html?e='.urlencode($error)); exit; }
all'interno dell'if io metterei una echo dell'error. Se posso permettermi, però, con la tua gestione tutte le volte sovrascrivi $error e se ci sono più errori resta solo l'ultimo. Io inizializzerei la variabile $error a null e tutte le volte aggiungerei la stringa in modo tale che possano venire salvati anche più messaggi di errore.
-
Ciao,
grazie ancora per l'aiuto, immagino che la seconda soluzione sia la più funzionale, ora però ho un pò di confusione in testa...
Potresti farmi un'esempio pratico?
-
Ciao,
in realtà questi sono pezzi del tuo codice, ti ho solamente detto che nel secondo caso aggiungerei una stampa dell'erroreif (isset($error)) {echo $error;header('Location: services3da.html?e='.urlencode($error)); exit;}
Detto ciò, su questo sito trovi due passi della guida che fanno al caso tuo:
- http://www.giorgiotave.it/guide-webmaster/php/convalida-form/ per la convalida dei form
- http://www.giorgiotave.it/guide-webmaster/php/controlli-form/ alcuni controlli sui form in generale
-
Ciao,
ho sbagliato a scrivere, per seconda soluzione intendevo quella in cui mi consigli di inizializzare la variabile $error a null.
Ho comunque provato questo codice:
if (isset($error)) {echo $error;header('Location: services3da.html?e='.urlencode($error)); exit;}
Ho notato che,come dicevi tu, rimane solo l'ultimo errore ma viene scritto nella barra in alto degli indirizzi:
localhost/modern-business/services3da.html?e=You+must+enter+your+name.
Perché non esce l'errore appena sotto il campo non compilato?
-
Ciao
Ho notato che,come dicevi tu, rimane solo l'ultimo errore ma viene scritto nella barra in alto degli indirizzi:
questo dovrebbe accadere per questo codice:
header('Location: services3da.html?e='.urlencode($error));
Ma hai messo uno spazio apposito per fare uscire l'errore vicino al campo?
Non hai postato il codice del form e senza vederlo non ti saprei dire. Ti anticipo che dovresti comunque avere un elemento HTML in cui scrivere l'errore.
-
Ciao
Quindi devo togliere dal mio codice header('Location: services3da.html?e='.urlencode($error)); ?
Questo è il codice HTML del form:<div class="col-sm-4">
<h3>Contatti</h3>
<p></p>
<form method="post" action="contact-form-submission2.php">
<div class="row">
<div class="form-group col-lg-4">
<label for="input1">Nome</label>
<input type="text" name="contact_name" class="form-control" id="input1">
</div>
<div class="form-group col-lg-4">
<label for="input2">Email</label>
<input type="email" name="contact_email" class="form-control" id="input2">
</div>
<div class="form-group col-lg-4">
<label for="input3">Telefono</label>
<input type="phone" name="contact_phone" class="form-control" id="input3">
</div>
<div class="clearfix"></div>
<div class="form-group col-lg-12">
<label for="input4">Messaggio</label>
<textarea name="contact_message" class="form-control" rows="6" id="input4"></textarea>
</div>
<div class="form-group col-lg-12">
<input type="hidden" name="save" value="contact">
<button type="submit" class="btn btn-primary">Invia</button>
</div>
</div>
</form>
</div>Grazie
-
Ciao ti consiglio di dare un'occhiata a questo tool : Fantastic form builder è un generatore di moduli email che permette la creazione automatizzata di moduli email e moduli per l'inserimento dei dati in database, con possibilità di avere tutti i codici sorgenti e poterli gestire come vuoi senza nessun limite, i moduli creati sono robusti e sicuri con filtro antispam e validazione input
-
Ciao,
sei riuscito a risolvere il problema?