controllo form php con restituzione errori nella form

federicotm

Nuovo Utente
8 Nov 2015
9
0
0
Salve a tutti,

sto realizzando una form di registrazione ad un sito, ho già messo tutti i controlli in html ora vorrei che se il controllo in php non vada a buon fine si rimandi di nuovo al form con evidenziati gli errori nella compilazione.

se avete qualche guida da postarmi ve ne sarei grato :fonzie:
 

Jonn

Utente Attivo
29 Dic 2012
352
3
18
Pistoia
Di primo acchito penso ad una soluzione così:

Quando hai l'errore del form, assegna ad una variabile "$error" il testo che identifica l'errore (mail non corretta, campo vuoto...), nella form basta che ci scrivi:
PHP:
<?php
	echo $error;
?>
Nel punto esatto dove vuoi che vengano visualizzati.
Ovviamente devi individuare tutti i possibili errori della form ed assegnare ad error la descrizione, io per esempio per una form di login gli ho impostato un controllo con PHP fatto in questo modo:
PHP:
if (isset($_POST['submit'])){									//Se "submit" è impostato (quindi "Login" è stato cliccato)
		if (empty($_POST['username']) || empty($_POST['password'])){//controllo se username O password sono vuoti (|| = OR), se anche uno solo è vuoto.
			$error = "Compila tutti i campi!";						//scrivo la notifica dell'errore;

Praticamente la variabile "$error" esiste sempre ed è sempre scritta nella pagina, solo che quando c'è un errore assume un valore(descrizione errore), altrimenti rimane il suo valore che è nullo quindi non si vede.
 

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
quando iniziai ad usare php, mi resi conto di quanti script fossero necessari per completare delle semplici operazioni
la cosa non mi piaceva per niente, così cercando, trovai questa "lezione" che applicai al massimo,
http://coredogs.com/lesson/form-and-php-validation-one-page.html
oggi un mio script contiene l'intero set di funzioni, questa è, in brevissimo la struttura, che comprende la validazione lato client (html e js) e lato server (php)
PHP:
if($OPMainForm == "0") EmptyFields();
else {
  if ($OPMainForm == "1") {
    check_SOLID();
    check_fields();
  }

  switch ($OPACTION) {

    case "Cerca":
      if (count($errormsg) == 0) {
.....


function check_fields() {
....
  $errormsg[] = ....


function check_BUTTONS() {
  switch ($OPACTION) {
    case "Abbandona":
    case "Aggiorna":
    case "Annulla":
    case "Avanti":
    case "Cancella":
    case "Cerca":
    case "Conferma":
    case "Continua":
    case "Elimina":
    case "Indietro":
    case "Inserisci":
    case "M.O.":
    case "Modifica":
    case "NONE":
      break;

    default:
.....
lato server "$errormsg[]" conterrà gli eventuali errori che se non corretti, impediranno il proseguimento dell'attività

ma è un mio modo di vedere la programmazione
ciao
Marino
 
Ultima modifica:

federicotm

Nuovo Utente
8 Nov 2015
9
0
0
Jonn ho un dubbio:
ho seguito il tuo consiglio però avendo la form che viene inviata ad un altro file .php l'errore appare appunto sulla nuova pagina, vorrei invece come per i controlli lato client che ho messo in html i campi non "esatti" venissero marcati direttamente sulla form senza cambiare pagina...
Grazie
 

Jonn

Utente Attivo
29 Dic 2012
352
3
18
Pistoia
Ma infatti la form non deve aprire un'altra pagina, praticamente fai un ciclo in PHP If Else che se la validazione va a buon fine, il browser reindirizza alla pagina dove c'è scritto che la form è stata inviata con successo, altrimenti rimani nella pagina del form e leggi l'errore.

Ma tu vuoi che sia evidenziato un errore per ogni input compilato male? o ti basta un errore generico tipo: Completa i campi obbligatori! ??
 

federicotm

Nuovo Utente
8 Nov 2015
9
0
0
Ciao Jonn,
ho implementato il codice php in modo che ricarichi la stessa pagina come mi hai consigliato... perfetto funziona!
Ora mi sono sopraggiunti altri 2 quesiti:

1) ho la form per la registrazione che si apre in un div quindi dopo aver premuto "registrati" ricarica l'intera home page ma senza visualizzare appunto il div della form dove tra l'altro appaiono gli errori di compilazione

2) la form è stata progettata con l'ausilio dei pattern in html5... benissimo! ora vorrei sapere se c'e' un modo in html magari usando sempre i pattern per visualizzare l'errore quando la mail e la mail di conferma non corrispondono... ho cercato in lungo e in largo anche al di fuori del forum ma non ho trovato una soluzione!
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
Ma perdonami non ti verrebbe molto più semplice farlo con jquery..

Non capisco perchè complicarsi la vita.

Saluti.
G.G.
 

Jonn

Utente Attivo
29 Dic 2012
352
3
18
Pistoia
Ma scusami, non puoi passarci un link per vedere il lavoro? così possiamo tutti darti consigli molto più precisi e consoni.
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [PHP] Controllo nome utente form di registrazione PHP 4
M [PHP] controllo inserimento dati un un form PHP 4
Z Controllo campi di un form php PHP 5
P controllo dati form con jquery e php PHP 8
M Problema con controllo form in real time jQuery 6
M [ASP] Upload file da form controllo Classic ASP 5
gandalf1959 Funzione di controllo su un form, comportamento inaspettato Javascript 6
M controllo di quantità in un form Javascript 0
P controllo sul form Javascript 1
S Controllo di due form in Javascript Javascript 1
P invio form non corretto dopo controllo dati PHP 8
T problema strano con procedura di controllo da database, di dati immessi in un form asp Classic ASP 5
H Effettuare il controllo dei campi di un form e cambiare l' action dinamicamente Javascript 1
K controllo testo da form PHP 7
L form controllo con il for "Tutti i dati sono richiesti". PHP 2
K Controllo FORM e invio dati al DB PHP 43
P controllo campo select nel form Javascript 6
ivarello Form Che avvia upload e controllo automatico PHP 1
P controllo dati mentre s'inseriscono nel form PHP 17
P controllo campi form istantaneo PHP 4
L controllo form radio prima di inviare jQuery 1
T Impostare un controllo da database, di dati immessi in un form asp Classic ASP 6
T impostare il controllo dei dati immessi dagli utenti su form asp Classic ASP 8
L Controllo campi di un form Ajax 0
D script controllo campi form non va su FF Javascript 2
B Controllo form Javascript 2
B controllo su form PHP 4
B Controllo form: uno dei 2 campi obbligatorio Javascript 11
Robby84 Codice di controllo per form mail PHP 4
P controllo in form con 2 submit Javascript 7
L Controllo e confronto dati immessi in 2 campi Data in un form (mysql) PHP 1
P Predefinito Controllo campi form contenuto in un DIV Classic ASP 0
D Controllo su campi Form Javascript 3
M Controllo campi in un form Javascript 2
sbobby Codice di controllo su form mail!! PHP 4
A controllo in js dei campi di un form Javascript 1
A Problema form: controllo campi vuoti e inibizione pulsante invio Javascript 5
T controllo form: data inserita > maggiore di data odierna Javascript 4
N Controllo form da altri frame HTML e CSS 0
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
Z Controllo giorni MYSQL PHP 0
MarcoGrazia jquery validate() controllo checkbox jQuery 2
M Controllo del codice fiscale/partita iva PHP 11
S Software windows10 per controllo contenuti web Windows e Software 6
S Controllo appuntamenti disponibili sul db PHP 5
L input (controllo se è stato modificato o no). PHP 1
W Controllo competitors serp SEO e Posizionamento 2
bubino8 [Javascript] popup di controllo elimina dopo window.print(); Javascript 0
M [MS Access] controllo valido se MS Access 8
MarkRed Come indicare, in una maschera, il primo controllo d'input, tipo "SetFocus" jQuery 9

Discussioni simili