- Home
- Categorie
- Coding e Sistemistica
- PHP
- Registrazione in più pagine
-
Registrazione in più pagine
Eccomi, prima discussione e prima richiesta di aiuto!
Evito di scrivere tutto il codice, vi spiego quello che mi succede: ho da fare uno script per la registrazione di aziende, e visto che i form da riempire sono tanti li ho suddivisi in 3 file (register.php, register2.php e register3.php), nel primo metto
register_form() dove metto i form dati
controllo_dati() dove controllo se sono stati inseriti tutti i dati necessarie cosi anche negli altri. Problema: se nel register_form() metto
<FORM METHOD="POST" ACTION="register2"> ```nel file register2 mi ritrovo le varibili da mettere nei campi nascosti come spiegato qui: giorgiotave.it/guida_php/campi_nascosti.php però non posso utilizzare la funzione controllo_dati(), mentre se metto
<FORM METHOD="POST" ACTION="<?php echo $PHP_SELF ?>">
if(empty($_POST)){
$_POST['action'] = "vuoto";}
if($_POST['action'] == "vuoto"){
html_header();
register_form();
html_footer();
}if($_POST['action'] != "vuoto"){
controllo_dati();
if($_POST['utente'] == azienda){echo "<script> window.location = \"register2.php\" </script>"; }
}
C'è un altro modo di agire? PS: si lo so, scrivo male se non capite cosa voglio dire vi compatisco :?:D
-
Ciao ilos3 e benvenuto sul forum GT,
puoi risolvere in diversi modi, dipende da come ti piace scrivere il codice.Puoi fare il controllo nella pagina successiva, ed in caso di errore, mediante il comando header rimandi indietro l'utente mettendo le variabili nell'url. Supponendo che ad esempio il campo nome è sbagliato, in register2.php metti:
header("Location: http: // www. tuosito.ext/register1.php?nome=gianni&cognome=pinotto&errore=nome");
In questo modo con le variabili nome e cognome ripopoli i campi evitando all'utente di riscrivere tutto e con la variabilie errore comunichi qual'è lo sbaglio. Ovviamente puoi complicare l'esempio aggiungendo altre variabili di controllo...
Alternativamente puoi fare un controllo sulla stessa pagina e ad esito positivo spedire le variabili via GET (cioè nella url) giocando come sopra o via post sempre giocando con il comando header (un pelino più complicato).
Quello che io farei però e semplificarmi la vita con una sola pagina...
Creati i form ed anziche stamparli a monitor li salvi in una variabile:
$form1=ecc...
$form2=ecc...
Avendo cura di inserire in ogni form un campo nascosto del tipo form1=1 per il primo form ecc.Quindi inizi i tuoi giochi di if e $_POST:
if (!isset($_POST['form1']) && !isset($_POST['form2'])) //pagina iniziale
echo $form1;
elseif ($_POST['form1']==1 && !isset($_POST['form2']) //primo invio
//faccio i primi controlli e stampo o $form1 o $form2
elseif ($_POST['form1']==1 && !isset($_POST['form2']) //secondo invio
//faccio i secondi controlli e stampo o $form2 o $form3e via dicendo fino alla query di insert nel db...
Spero di non averti ulteriormente confuso le idee!
-
Ciao ceccus e grazie della risposta! Effettivamente l'ultimo metodo mi sembra quello più semplice per me Cmq ho letto i metodi di sessione e ho fatto la prova con quelli mettendo il tutto nella variabile $_SESSION, e alla fine funziona! Spero che non ci siano controindicazioni con questo metodo che però mi sembra quello più semplice. Grazie ancora