Visualizzazione risultati 1 fino 1 di 1

Discussione: come creare un modulo per la registrazione con la possibilitá di espanderlo

  1. #1
    howdoit non č connesso Neofita
    Data registrazione
    01-10-2014
    Messaggi
    4

    Predefinito come creare un modulo per la registrazione con la possibilitá di espanderlo

    ho scritto queste "2 righe" per chi si avvicina per le prime volte al mondo del web design,in giro ci sono tante guide che trattano la registrazione ma credo che cn la mia si possa ottenere un ottimo codice al quale poi aggiungere i propri pezzi,oltre che dare un'impostazione al proprio codice,spero di aver fatto una cosa utilie

    Vi ho commentato il codice per diggerirlo meglio :)
    Preciso che il "debugger" é fittizio,é strutturaro solo per farmi controllare che la query sia giusta:
    config.php
    Codice PHP:
    <?php
    /*
    ** created by: admin of howdoit.altervista.org
    ** web site: http://howdoit.altervista.org/
    ** twitter: https://twitter.com/how_do_it
    ** facebook: https://www.facebook.com/pages/How-do-it/457066587766790
    ** google+: https://plus.google.com/u/0/b/105766764294701908303/105766764294701908303/about
    */

    //creiamo la nostra classe
    class config{

    //dichiariamo tutte le nostre variabili protected e cioé visibili solo all'interno della classe e relative sottoclassi
    //variabili riguardanti il database
    protected $host;
    protected
    $user;
    protected
    $password;
    protected
    $database;
    protected
    $mysqli;

    //variabili generali
    protected $data;
    protected
    $dataFormattata;

    //variabili legate al sito
    protected $nomeSito;
    protected
    $indirizzoSito;
    protected
    $emailSito;

    //debugger(non so come mai nessuno utilizzi questa opzione,magari ognuno tiene per se queste cose,ma io la trovo comoda e ve la scrivo :))
    protected $debugger;

    //creiamo la funzione __construct che si occupa di valorizzare le variabili
    function __construct() {

    //dati connessione
    $this->host = "localhost";
    $this->user = "tuo-nome";
    $this->password = "tua-password";
    $this->database = "nome-database";

    //dati generali
    $this->data = time();
    $this->dataFormattata=date("d/n/o",time());

    //dati sito
    $this->nomeSito="HowDoIt";
    $this->indirizzoSito="http://howdoit.altervista.org/";
    $this->emailSito="howdoit@altervista.org";

    //debugger
    $this->debugger=0;

    }

    /*
    * setter - non so come le chiamino nel php ma in java si chiamano cosí e cosí rimarranno :)
    */
    //setter per abilitare il "debugger"
    function set_debugger($val){
    $this->debugger=$val;
    }

    /*
    * getter - come sopra,non so come le chiamino nel php ma in java si chiamano cosí e cosí rimarranno :)
    */

    //recupero il nome del sito
    function get_NomeSito(){
    return
    $this->nomeSito;
    }

    //recupero l'indirizzo del sito
    function get_indirizzoSito(){
    return
    $this->indirizzoSito;
    }

    //recupero la mia e-mail
    function get_emailSito(){
    return
    $this->emailSito;
    }

    //recupero la data in timestamp,puó sempre tornare utile
    function get_data(){
    return
    $this->data;
    }

    //sono pigro e recupero anche la data giá formattata XD
    function get_dataFormattata(){
    return
    $this->dataFormattata;
    }


    /*
    * connessione e disconnessione
    */

    //creo la funzione per la connessione
    function getConnection(){

    //colleghiamoci al database
    $this->mysqli = new mysqli($this->host,$this->user,$this->password,$this->database);

    //verifica dell'avvenuta connessione
    if (mysqli_connect_errno()) {

    // notifica in caso di errore
    echo "Errore durante la connessione al DBMS: ".mysqli_connect_error();

    // interruzione delle esecuzioni i caso di errore
    exit();
    }
    }

    //creo la funzione per la disconnessione
    function closeConnection(){

    $this->mysqli->close();
    }


    /*
    * query
    */

    //query SELECT
    function DB_select($table,$option=""){

    $this->getConnection();

    //array contenente il valore di ritorno
    $arrayRitorno=array();

    // esecuzione della query
    $result = $this->mysqli->query("SELECT * FROM $table WHERE $option AND id_account='".$_SESSION['id']."' ORDER BY id desc") ;

    if(
    $this->debugger==1): echo("SELECT * FROM $table WHERE $option AND id_account='".$_SESSION['id']."' ORDER BY id desc") ; endif;
    // conteggio dei record restituiti dalla query
    if($result):

    if(
    $result->num_rows >0):

    // generazione di un array multidimensionale
    while ($row = $result->fetch_array(MYSQLI_ASSOC)):
    $arrayRitorno[] = $row;
    endwhile;

    $result->close();
    endif;
    endif;

    //disconnessione
    $this->closeConnection();

    //ritorno l´array con il result
    return $arrayRitorno;
    }

    //query INSERT
    function DB_insert($table,$option_name,$option_value){

    $this->getConnection();

    // esecuzione della query
    $result = $this->mysqli->query("INSERT INTO $table (id_account,$option_name)
    VALUES ('"
    .$_SESSION['id']."',$option_value)") ;

    if(
    $this->debugger==1): echo("INSERT INTO $table (id_account,$option_name) VALUES ('".$_SESSION['id']."',$option_value)") ; endif;

    //disconnessione
    $this->closeConnection();

    }

    //query UPDATE
    function DB_update($table,$option,$where_cause){

    $this->getConnection();

    // esecuzione della query
    $result = $this->mysqli->query("UPDATE $table SET $option WHERE $where_cause AND id_account='".$_SESSION['id']."' ") ;

    if(
    $this->debugger==1): echo("UPDATE $table SET $option WHERE $where_cause AND id_account='".$_SESSION['id']."' ") ; endif;

    //disconnessione
    $this->closeConnection();

    }

    //query DELETE
    function DB_delete($table,$option){

    $this->getConnection();

    //array contenente il valore di ritorno
    $arrayRitorno=array();

    // esecuzione della query
    $this->mysqli->query("DELETE FROM $table WHERE $option AND id_account='".$_SESSION['id']."' ") ;

    if(
    $this->debugger==1): echo("DELETE FROM $table WHERE $option AND id_account='".$_SESSION['id']."' ") ; endif;

    //disconnessione
    $this->closeConnection();


    }
    /*
    **fatemi sapere cosa ne pensate e soprattutto se avete dubbi e quali aricoli volete
    **le mie guide sono totalmente free,l'unica cosa che chiedo é il vostro sostegno :)
    */
    }
    ?>
    index.php
    Codice PHP:
    <!DOCTYPE html>
    <html>
    <head>
    <!-- includo il file config -->
    <?php include("config.php"); ?>
    <!-- istanzio la classe -->
    <?php $config=new config(); ?>
    </head>
    <body>

    <!-- creo il codice di sicurezza -->
    <?php $codice = rand(4000, 6000); ?>
    <!-- attivo il debugger -->
    <?php $config->set_debugger(1) ?>

    <!-- creo il form -->
    <div id="reg">
    <form id="reg-form" method="POST" action="#">
    <!-- stampo il nome del sito,ricordate i getter? :) -->
    <caption>registrati su <?php echo $config->get_NomeSito(); ?></caption>
    <input id="nome" name="name" type="text" placeholder="username" autofocus required>
    <input id="psw" name="psw" type="password" placeholder="password" required>
    <input id="r_psw" name="r_psw" type="password" placeholder="retype password" required>
    <input id="email" name="email" type="email" placeholder="e-mail" required>
    <span><?php echo $codice ?></span>
    <input id="check" name="check" type="hidden" value="<?php echo $codice; ?>">
    <input id="security" name="security" type="number" placeholder="security code" required>
    <nobr>
    <input id="reset" name="reset" type="reset" value="vuota i campi" >
    <input id="submit" name="submit" type="submit" value="invia i dati!" >
    </nobr>
    </form>
    </div>
    <?php
    if(isset($_POST["submit"])) :

    //recupero i valori
    $nome=htmlentities($_POST['nome']);
    $password=htmlentities($_POST['psw']);
    $r_psw=htmlentities($_POST['r_psw']);
    $email=$_POST['email'];
    $check=$_POST['check'];
    if(
    strlen($_POST['security'])==4 && is_numeric($_POST['security'])): $security=$_POST['security']; endif;
    $data_odierna=$config->get_data();

    //creo la variabili da passare alla query
    $nome_tabella="account";
    $nome_campi="nome,password,email,data_creazione";
    $valori="'$nome','$password','$email','$data_odierna'";


    if(
    $password==$r_psw):

    if(
    $security==$check):

    if(
    $config->DB_insert($nome_tabella,$nome_campi,$valori)):

    // mi invio una mail per essere avvisato (opzionale ovviamente)
    if(mail($config->get_emailSito(),"nuova registrazione","Congratulazioni,si é appena registrato un utente!")):


    if(
    mail($email,"registrazione account","Congratulazioni,la tua registrazione é andate a buon fine,ecco i tuoi dati: \nuser: ".$nome."\npassword: ".$password."\nsito: ".$config->get_indirizzoSito())):

    echo
    "Congratulazioni!! \nla registrazione é andata a buon fine,riceverai un'e-mail entro 24 ore con i tuoi dati per accere! \nbuona permanenza su".$config->get_NomeSito();

    endif;

    else:

    echo
    "si é verificato un problema,riprova tra qualche minuto :/";

    endif;

    else:

    echo
    "il codice non é corretto!";

    endif;

    else:

    echo
    "le password non corrispondono!";

    endif;

    endif;
    endif;
    ?>

    </body>
    <footer>
    powered by: <a href="http://howdoit.altervista.org/" title="HOW DO IT">how do it</a>
    </footer>
    </html>
    ?>
    DATABASE
    Codice:
    CREATE TABLE IF NOT EXISTS `account` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `nome` varchar(40) NOT NULL,
      `password` varchar(50) NOT NULL,
      `email` varchar(50) NOT NULL,
      `data_creazione` int(40) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
    ps:la guida era troppo lunga e sono stato costretto a tagliarla,se interessa vi consiglio di leggere la versione integrale sul mio sito
    edit: attualmente sono in sviluppo i moduli da aggiungere a questo,se avete qualche richiesta scrivetemi :D
    Ultima modifica di howdoit : 18-10-2014 alle ore 00.06.10

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •