form dinamico in php

benfy85

Nuovo Utente
15 Feb 2009
14
0
0
Ciao,
sto facendo un form dinamico, guardando delle dispense, ma non capisco come creare un form per la registrazione utenti, che mi tenga i dati nel caso in cui si verifichi un errore e mi aggiunga di lato i commenti degli errori o se il form è corretto, mi dia un messaggio di avvenuta registrazione.
Ho provato a farlo, ma il form che sia corretto o sbagliato, dopo aver premuto il bottone Registra, rimane sempre nella stessa pagina e non fa nulla... non mi dà nemmeno messaggi di errore!
PHP:
extract($_POST);
  $iserror = false;

  $inputlist = array("nome" => "Nome", "cognome" => "Cognome", "indirizzo" => "Indirizzo", "citta" => "Città", "cap" => "CAP", "nazione"=>"Nazione", "data_nascita" => "Data di Nascita", "email" => "Email", "password" => "Password" );
  if(isset ($submit))
  {
      if($nome == "") 
      {
        $formerrors["nomeerror"] = true;
        $iserror = true;
      }
      
      if($cognome == "")
      {
        $formerrors["cognomeerror"] = true;
        $iserror = true;
      }
      
      if($indirizzo == "")
      {
        $formerrors["indirizzoerror"] = true;
        $iserror = true;
      }
      
      if($citta == "")
      {
        $formerrors["cittaerror"] = true;
        $iserror = true;
      }
      
      if($cap == "")
      {
        $formerrors["caperror"] = true;
        $iserror = true;
      }
      
      if($nazione == "")
      {
        $formerrors["nazioneerror"] = true;
        $iserror = true;
      }
      
      if((!ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $data_nascita))||($data_nascita == ""))
      {
        $formerrors["data_nascitaerror"] = true;
        $iserror = true;
      }
      
      if ((!ereg ("/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/", $email)) || ($email == ""))
      {
        $formerrors["emailerror"] = true;
        $iserror = true;
      }
      
      if($password == "")
      {
        $formerrors["passworderror"] = true;
        $iserror = true;
      }
      
      if(!$iserror)
      {     
        if (!($link = mysql_connect( $db_hostname, $db_user, $db_password ))) print("Errore di connessione al server"); 
           
        if(!mysql_select_db($dbname, $link)) print("Errore di accesso al database");
           
        $query1 = "INSERT INTO utente (nome, cognome, indirizzo, citta, cap, nazione, data_nascita) VALUES ('$nome', '$cognome', '$indirizzo', '$citta', '$cap', '$nazione', '$data_nascita')";
        if (!mysql_query($query1, $link))
          {  die('Error: ' . mysql_error()); }
           
        $query2 = "INSERT INTO account (email, password, ruolo, nome, cognome) VALUES ('$email', '$password', '', '$nome', '$cognome')";
        if (!mysql_query($query2, $link))
          {  die('Error: ' . mysql_error()); }
           
        else 
        {  
            echo "<h3>I tuoi dati sono stati aggiunti nel nostro database</h3>
                    <h3><a href=\"index.php\">Ora puoi fare il LOGIN</a></h3>
                    </body>
                    </html>"; 
            die();  
        }           
      }
      
      if($iserror) 
      {  
        echo "<br/><p id=\"note\">Attenzione!Correggere i valori nei campi che hanno l'asterisco accanto!</p>";
      }
}
    echo "<div id=\"page\">
            <div id=\"content\">
            <h1> Registrazione</h1>
        	  <p> Effettua la registrazione e potrai continuare nell'acquisto</p>
            <div id=\"form\">
        		<form class=\"registra\" id=\"registra\" method=\"post\" action=\"registra.php\">
            <table>";       		
    
   foreach ( $inputlist as $inputname => $inputalt ) 
    { 
       if($inputalt == "Password")
       {
          echo "<tr><td>$inputalt :</td><td><input type = 'password' name = '$inputname' id = '$inputname' value = '" . $$inputname . "' />";
       }
       else 
       {
          $inputtext = $inputvalues[ $inputname ];
          echo "<tr><td>$inputalt :</td><td><input type = 'text' name = '$inputname' id = '$inputname' value = '" . $$inputname . "' />";
       }     

    if ( $formerrors[ ($inputname)."error" ] == true )
    {
      echo "<span style = 'color : red'>*</span>";       
    }
  }
    
    if ($formerrors["data_nascitaerror"])
    { 
      echo "<span style = 'color : red'>Il formato deve essere: anno-mese-giorno, es. 1979-11-23.</span>";
    }
       
    if ($formerrors["emailerror"])
    {
      echo "<span style = 'color : red'>Il formato deve essere come [email protected]</span>";
    }
    
  
    echo "<tr><td><input type=\"submit\" id = '$submit' name = '$submit' value=\"Registra\" /></td></tr>
              </table>
        			</form>
              </div>
             </div>
            </div>
        </body>
      </html>";  
?>

Non so dove sia l'errore... boh :crying:
 

jan267

Utente Attivo
6 Mar 2003
1.950
2
38
35
Milano
twitter.com
Posta il link della pagina. E' davvero strano.
Comunque "piccolo" appunto... i tag html si usano così:
Codice:
<nome_tag opzione="valore" ecc="ecc">
e non:
Codice:
<nome_tag opzione = "valore" ecc = "ecc">
 

benfy85

Nuovo Utente
15 Feb 2009
14
0
0
Posta il link della pagina. E' davvero strano.
Comunque "piccolo" appunto... i tag html si usano così:
Codice:
<nome_tag opzione="valore" ecc="ecc">
e non:
Codice:
<nome_tag opzione = "valore" ecc = "ecc">

ma la pagina è in localhost...
ah ok..per i tag html
 

benfy85

Nuovo Utente
15 Feb 2009
14
0
0
Eliox, ci stavo pensando anche io... credo che derivi da un post del form...
Alla riga precedente c'è extract($_POST).

è uno degli errori... in verità doveva essere solo 'submit' normale...
ma comunque ci deve essere ancora qualcosa che non va nei controlli della mail e della data di nascita, perché me li segna sempre come se fossero sbagliati, anche se non lo sono, impedendomi di accedere al messaggio dei dati corretti e al caricamento nel db
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Direi di non utilizzare extract() per importare variabili dall'array $_POST, correggettimi se sbaglio ma credo che, oltre ad essere rischioso, per gli input funzioni con register_globals in on.

Parto dal principio che il register_globals sia in off, quindi direi che come primo passo sarebbe meglio sostituire tutte le variabili da form con i corrispondenti parametri (ad es, $_POST['submit'] invece di $submit).
 
Discussioni simili
Autore Titolo Forum Risposte Data
K [PHP + MYSQL ] Inserimento dati in database da form dinamico PHP 13
eraclio666 [PHP] form dinamico PHP 10
C Ajax e PHP - form dinamico Ajax 2
M Aiuto realizzazione form dinamico. jQuery 1
asevenx Contare numero di righe in un form dinamico Javascript 5
M Form dinamico in modulo nella pagina HTML HTML e CSS 2
F Crear un form Contatti, per un Bed&Breakfast, dinamico, con Wordpress WordPress 3
I form dinamico Javascript 7
A Form "dinamico" Javascript 2
F Form dinamico Javascript 5
D Form e testo dinamico in un DIV... Ajax 7
M Problema con form dinamico Ajax 0
M script javascript e ajax per form dinamico. Ajax 8
M form per province e comuni (dinamico) PHP 0
M Form con menù dinamico da database PHP 10
$ Form Dinamico con moltiplicazione Javascript 0
S passare un valore da un form a un file .php con metodo post PHP 4
K Form che manda dati doppi PHP 1
K Problema form update PHP 2
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
K form Inserimento record mysql PHP 2
I Form con selettore HTML e CSS 0
K [php]form invio dati PHP 0
G form invio multiplo con checkbox PHP 12
nivaria.achinet Intercettare form solo dopo invio Javascript 1
D Form contatti non funzionante HTML e CSS 0
A Stampare dati da form PHP 15
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
I Form HTML e CSS 17
otto9due $_FILE non passa i dati dal form PHP 1
M Form: come tornare ai campi già compilati dopo invio PHP 1
G Invio form con PHP PHP 3
felino Form action costum e parametri in queryString WordPress 1
M Come recuperare molteplici input form PHP 1
M Collegamento tra form html e script php PHP 4
L form immagini per il database PHP 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
L inserimento form dati multipli ? PHP 0
L Problemi form Pagina php HTML e CSS 3
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
D Devo far funzionare un form di contatti PHP 4
B form gestione input PHP 2
V PHP form intersecate PHP 0
8 Javascript - PDF Form Javascript 0
J Form inserimento dati in database Ajax 1
E Gestione profilo utente tramite Form PHP 3
R [C#] Form principale si blocca mentre un altro Thread lavora .NET Framework 0
M Problema con controllo form in real time jQuery 6

Discussioni simili