Visualizzazione dei risultati da 1 a 6 su 6

Discussione: form registrazione

  1. #1
    Utente di HTML.it L'avatar di zumo
    Registrato dal
    Jun 2002
    Messaggi
    141

    form registrazione

    ho creato un form e relativa pagina di controllo...ma se una persona non inserisce un dato non torna al form? come faccio? quale comando? che magari possa mantenere i dati immessi in precedenza?
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>iscrizione in corso...</title>
    </head>
    <body>
    <?php
        
    include("include/base.inc");
        include(
    "include/connector.inc");



    $flag_controllo=0;
    while(list(
    $chiave$valore)=each($_POST)){
    if(
    substr($chiave,0,3)=="ob_"){
    if(
    $valore ==""){
    echo 
    "non hai compilato il campo obbligatorio $chiave, l'iscrizione non può essere processata.";
    $flag_controllo=1;
    break;
    }
    }
    }
    if(
    $flag_controllo==0){
    //procede all'iscrizione
    }



    $stringa_query "insert into user (username,password,nome,cognome,email,data_registrazione) 
    values (\"
    $_POST[ob_username]\",\"$_POST[ob_password]\",\"$_POST[nome]\",\"$_POST[cognome]\",\"$_POST[ob_email]\",now())";
    $iscrizione_utente=mysql_query($stringa_query) or die(mysql_error());

    header("Location: login.php");
    exit;
    ?>
    </body>
    </html>

  2. #2
    Utente di HTML.it L'avatar di zumo
    Registrato dal
    Jun 2002
    Messaggi
    141
    ho provato a modificarlo ma niente....dovrebbe mandare la mail all'amministratore del sito (questo lo fa)e ha chi si è registrato (non lo fa),ma poi non inserisce l'utente!!
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>iscrizione in corso...</title>
    </head>
    <body>
    <?php
        
    include("include/base.inc");
        include(
    "include/connector.inc");

    //Siccome il metodo usato dal form per l'invio dei dati e di tipo POST allora le variabili con i loro contenuti assumeranno 
    //la forma $_POST['Nome_Campo'];

    //assegnamo un nome più semplice alle variabili
    $username $_POST[username];
    $password $_POST[password];
    $nome $_POST[nome];
    $cognome $_POST[cognome];
    $email $_POST[email];
    //controlliamo che tutti i campi siano stati compilati
    if($username != '' && $password != '' && $email != ''//quelle in parentesi sono apici singole e non virgolette
    {echo"Hai lasciato uno dei campi del modulo vuoto. Ricorda che devi compilare tutti i campi."
     
    //ora possiamo chiudere la parentesi graffa che abbiamo aperto con tutti i campi compilati
    //e scriviamo quest'altra porzione di codice in modo da non lascere l'utente beato davanti ad una pagina bianca, nel caso in cui abbia sbagliato qualcosa durante la compilazione del modulo
    }else { //fatto questo possiamo reindirizzare l'utente alla pagina origine.
    echo"<meta http-equiv='refresh' content='5; URL= register.php'>";
    }

    //ora possiamo inserire i dati nel database se vogliamo, oppure spedirli tramite email.
    // Il consiglio che do però e di verificare prima il corpo del messaggio, visto che il form è 
    //lo strumento principe con cui i furbetti vogliono fare danni. Ci sono molte funzioni a disposizione, io consiglio le seguenti:

    //rendiamo il corpo del messaggio innocuo
    $username stripslashes('$username');
    $password stripslashes('$password');
    $nome stripslashes('$nome');
    $cognome stripslashes('$cognome');
    $email stripslashes('$email');

    $username mysql_real_escape_string('$username');
    $password mysql_real_escape_string('$password');
    $nome mysql_real_escape_string('$nome');
    $cognome mysql_real_escape_string('$cognome');
    $email mysql_real_escape_string('$email');
    //ed infine

    $username htmlentities('$username');
    $password htmlentities('$password');
    $nome htmlentities('$nome');
    $cognome htmlentities('$cognome');
    $email htmlentities('$email');
    //Facciamo una query select dalla tabella che contiene Email e Commento
    $query "SELECT username FROM user WHERE username ='$username'";
    $result mysql_query($query$dbconn)or die(mysql_error());
    $row mysql_fetch_array($result);
    //e quest'ultima riga conta se ci già user come quella del form nella tabella
    $num1 mysql_num_rows($result);
    echo 
    "$num1";
    //ora scriviamo la condizione che impedirà o lascerà campo libero al proseguimento del form
    if($num1 '1')
    {echo
    " L'username inserita è già presente nel database, usane una differente"
    }else { 
    //fatto questo possiamo reindirizzare l'utente alla pagina origine.
    echo"<meta http-equiv='refresh' content='5; URL= register.php'>";

    }
    //Bene. Ora possiamo procedere col manipolare i dati. Vi faccio l'esempio del caso maggiormente utilizzato, ovvero memorizzare i dati nel database.
    //procediamo con il continuo del form. Ovviamente ricordiamo di chiudere la parentesi 
    if($num1 == '0') {
    //facciamo una query insert. Ovviamente esistono molte forme per fare una query, io uso per abitudine questa, tenendo presente che $db è il risultato della connessione al database.
    $query "INSERT INTO user (username,password,nome,cognome,email,data_registrazione) VALUES (\"$_POST[username]\",\"$_POST[password]\",\"$_POST[nome]\",\"$_POST[cognome]\",\"$_POST[email]\",now())";
    $result =mysql_query($query$dbconn) or die(mysql_error());

    //Bene. Se avete scritto il nome della tabella ed i nomi dei campi in modo corretto, i dati verranno inseriti senza problemi nel database. Magari stampiamo una frasetta per far capire all'utente che tutto è avvenuto in modo corretto
    echo"Hai completato il form senza problemi; i tuoi dati sono stati registrati.";
    }else {
    echo
    "<meta http-equiv='refresh' content='3; URL= login.php'>";
     }

    $a="dest <$email>,dest2 <admin@camperservicesearch.com>";
    $oggetto="Registrazione avvenuta con successo !";
    $messaggio="messaggio mail";
    $intestazioni"From:admin<admin@camperservicesearch.com>\r\n";
    //$intestazioni .= "Reply-To:admin<admin<admin@camperservicesearch.com>\r\n";
    //$intestazioni .= "X-Mailer: PHP/" . phpversion();
    mail($a$oggetto$messaggio$intestazioni);

  3. #3
    prova a fare il controllo dei campi in javascript..sicuramente ti risparmi assurdi controlli tra piu pagine e tutto una cosa semplice,se tutti i campi sono pieni continua,altrimenti avvisa l'utente

  4. #4
    Utente di HTML.it L'avatar di zumo
    Registrato dal
    Jun 2002
    Messaggi
    141
    puoi darmi un link dove se ne parla? O una mano tu

  5. #5

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    io l'avrei strutturata diversamente...

    premesso che ho lpagina del form che punta a check.php

    Codice PHP:

    if (isset $_POST['invia'])
      {
      foreach(
    $_POST as $key=>$val)
        {
        if (empty(
    $_POST[$key]))
          {
          
    form("ERRORE: COMPILARE TUTTI I CAMPI",$_POST);
          die();
          }
        }
      }
    else
      {
      
    form("COMPILARE I CAMPI");
      }



    function 
    form($message,$_POST="")
      {
      if (isset(
    $_POST) && !empty($_POST))
        {
        echo 
    "
    [b]
    $message[/b]
    \n"
    ;
        echo 
    '<form name="form" method="post" action="pagina.php">';
        if (isset(
    $_POST) && !empty($_POST))
          {
          foreach (
    $_POST as $key=>$val)
            {
            echo 
    "<input type=\"text\" name=\"$key\" value=\"$val\">\n";    
            }
          echo 
    '<input type="submit" name="invia" value="invia">\n</form>\n';
          }
        else
          {
          echo 
    '
    <form name="form" method="post" action="pagina.php">
    nick:<input type="text" name="nick">
    e-mail:<input type="text" name="nick">
    <input type="submit" name="invia" value="invia">
    </form>\n'
    ;
          }
        }
      } 
    questo per il controllo dei campi con ritorno + error message e ricompilazione campi
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.