• User

    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 necessari

    e 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

  • User Attivo

    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... :fumato:

    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 $form3

    e via dicendo fino alla query di insert nel db...

    Spero di non averti ulteriormente confuso le idee!
    :ciauz:


  • User

    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 :festa: