• User

    Sia con invio tastiera che click mouse il rislutato non cambia.

    [php]
    <?php
    // Includo la connessione al database
    require('config.php');

    // Se il modulo viene inviato...
    if(isset($_POST['registra']))
    {

    // Dati Inviati dal modulo
    $username = (isset($_POST['username'])) ? trim($_POST['username']) : '';    // Metto nella variabile 'username' il dato inviato dal modulo, se non viene inviato dò di default ''
    $password = (isset($_POST['password'])) ? trim($_POST['password']) : '';    // Metto nella variabile 'password' il dato inviato dal modulo, se non viene inviato dò di default ''
    $password2 = (isset($_POST['password2'])) ? trim($_POST['password2']) : '';    // Metto nella variabile 'password2' il dato inviato dal modulo, se non viene inviato dò di default ''
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    // Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default ''
    $name = (isset($_POST['name'])) ? trim($_POST['name']) : '';    // Metto nella variabile 'name' il dato inviato dal modulo, se non viene inviato dò di default ''
    $surname = (isset($_POST['surname'])) ? trim($_POST['surname']) : '';    // Metto nella variabile 'surname' il dato inviato dal modulo, se non viene inviato dò di default ''
    $azienda = (isset($_POST['azienda'])) ? trim($_POST['azienda']) : '';    // Metto nella variabile 'azienda' il dato inviato dal modulo, se non viene inviato dò di default ''
    $occupazione = (isset($_POST['occupazione'])) ? trim($_POST['occupazione']) : '';    // Metto nella variabile 'occupazione' il dato inviato dal modulo, se non viene inviato dò di default ''
    $indirizzo = (isset($_POST['indirizzo'])) ? trim($_POST['indirizzo']) : '';    // Metto nella variabile 'indirizzo' il dato inviato dal modulo, se non viene inviato dò di default ''
    $citta = (isset($_POST['citta'])) ? trim($_POST['citta']) : '';    // Metto nella variabile 'citta' il dato inviato dal modulo, se non viene inviato dò di default ''
    $comune = (isset($_POST['comune'])) ? trim($_POST['comune']) : '';    // Metto nella variabile 'comune' il dato inviato dal modulo, se non viene inviato dò di default ''
    $provincia = (isset($_POST['provincia'])) ? trim($_POST['provincia']) : '';    // Metto nella variabile 'provincia' il dato inviato dal modulo, se non viene inviato dò di default ''
    $cap = (isset($_POST['cap'])) ? trim($_POST['cap']) : '';    // Metto nella variabile 'cap' il dato inviato dal modulo, se non viene inviato dò di default ''
    $telefono = (isset($_POST['telefono'])) ? trim($_POST['telefono']) : '';    // Metto nella variabile 'telefono' il dato inviato dal modulo, se non viene inviato dò di default ''
    $fax = (isset($_POST['fax'])) ? trim($_POST['fax']) : '';    // Metto nella variabile 'fax' il dato inviato dal modulo, se non viene inviato dò di default ''
        
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $username = addslashes($username);
        $password = addslashes($password);
        $mail = addslashes($mail);
        $azienda = addslashes($azienda);
        $occupazione = addslashes($occupazione);
        $indirizzo = addslashes($indirizzo);
        $citta = addslashes($citta);
        $comune = addslashes($comune);
        $provincia = addslashes($provincia);
        $cap = addslashes($cap);
        $telefono = addslashes($telefono);
        $fax = addslashes($fax);
    
    }
    
    // Controllo il Nome Utente
    if(strlen($username) < 4 || strlen($username) > 28)
        die('Nome Utente troppo corto, o troppo lungo <a href="javascript:history.go(-1); return false">Modifica i Dati inseriti</a>');
    // Controllo il nome utente non sia già occupato
    elseif(mysql_num_rows(mysql_query("SELECT username FROM utenti WHERE username = '$username' LIMIT 1")) == 1)
        die('Nome Utente non disponibile <a href="javascript:history.go(-1); return false">Modifica i Dati inseriti</a>');
    // Controllo la Password
    elseif(strlen($password) < 4 || strlen($password) > 28)
        die('La password deve avere una lunghezza compresa tra i 4 e i 28 caratteri');
    elseif($password != $password2)
        die('Le due password non corrispondono');
    // Controllo l'E-mail
    elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})", $mail))
        die('Email non valida');
        // Controllo l'indirizzo email non sia già registrato
        elseif(mysql_num_rows(mysql_query("SELECT mail FROM utenti WHERE mail = '$mail' LIMIT 1")) == 1)
            die('Questo indirizzo email risulta gi&agrave; registrato da un altro utente');
    // Controllo il campo Nome
    elseif(strlen($name) < 3 || strlen($name) > 28)
        die('Nome non valido');
    // Controllo il campo Cognome
    elseif(strlen($surname) < 3 || strlen($surname) > 28)
        die('Cognome non valido');
    // Controllo il campo Azienda
    elseif(strlen($azienda) < 0 || strlen($azienda) > 200)
        die('Azienda non valida');
    // Controllo il campo Occupazione
    elseif(strlen($occupazione) < 0 || strlen($occupazione) > 200)
        die('Occupazione non valida');
    // Controllo il campo Indirizzo
    elseif(strlen($indirizzo) < 3 || strlen($indirizzo) > 200)
        die('Indirizzo non valido');        
    // Controllo il campo Città
    elseif(strlen($citta) < 3 || strlen($citta) > 200)
        die('Residenza non valida');
    // Controllo il campo Comune
    elseif(strlen($comune) < 2 || strlen($comune) > 200)
        die('Comune non valido');
    // Controllo il campo Provincia
    elseif(strlen($provincia) != 2)
        die('Provincia non valida');
    // Controllo il campo Cap
    elseif(strlen($cap) != 5)
        die('Cap non valido');
    // Controllo il campo Telefono
    elseif(strlen($telefono) < 2 || strlen($telefono) > 200)
        die('Campo Telefono non valido');
    // Controllo il campo Fax
    elseif(strlen($fax)  < 0 || strlen($comune) > 200)
        die('Campo Fax non valido');
    
    // Registrazione dell'utente nel database
    else
    {
        
        // Crypt della password per garantire una miglior sicurezza
        $password = md5($password);
        
        
        // Genero una stringa casuale di Attivazione
        $attivazione = '';
        for($x=1; $x<=32; $x++)
        $attivazione.=rand(0,9);
        $attivazione = md5($attivazione);
        $message = 'Per attivare il Suo account deve visitare il seguente link:<br><a href="http: // www . associazioneconsumatorieuropei . eu/ auth/attivazione .php?code='.$attivazione.'">Attiva account</a>';
        // Header dell'email, per mandarla in formato html
        $headers = "From: Associazione Consumatori Europei <[email protected]>\r\n";
        $headers .= "Reply-To: email\r\n";
        $headers .= "Return-Path: email\r\n";
        $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    
        // Invio L'email
        mail($mail, 'Associazione Consumatori Europei - Registrazione web', $message, $headers);
        
        // Query per l'inserimento dell'utente nel database
        $strSQL = "INSERT INTO utenti (username,password,mail,name,surname,azienda,occupazione,indirizzo,citta,comune,provincia,cap,telefono,fax,attivazione)";
        $strSQL .= "VALUES('$username', '$password', '$mail', '$name', '$surname', '$azienda', '$occupazione', '$indirizzo', '$citta', '$comune', '$provincia', '$cap', '$telefono', '$fax', '$attivazione')";
        mysql_query($strSQL) OR die("Errore 003, contattare l'amministratore ".mysql_error());
        
    
        // Reindirizzo l'utente ad una pagina di conferma della registrazione
        header('Location: registrato . php');
        exit;
    }
    

    }
    /INIZIO USERNAME VALIDATION/

    //get the username
    $username = mysql_real_escape_string($_POST['username']);

    //mysql query to select field username if it's equal to the username that we check '
    $result = mysql_query('select username from utenti where username = "'. $username .'"');

    //if number of rows fields is bigger them 0 that means it's NOT available '
    if(mysql_num_rows($result)>0){
    //and we send 0 to the ajax request
    echo 0;
    }else{
    //else if it's not bigger then 0, then it's available '
    //and we send 1 to the ajax request
    echo 1;
    }
    ?>
    [/php]```

    <form action="privata.php" method="post">
    <div align="center">
    <table width="100%">
    <tr>
    <td><font color="#FF0000">Dati per il Log-in</font> <br>
    <table border="0" width="100%">
    <tr>
    <td colspan="2">
    <p class="pform">
    <strong>Username:</strong><br />
    <div id="msgbox" style="display:none; color:#FF3300;"></div>
    </p>
    </td>
    <td colspan="2"><input name="username" class="inputform" type="text" id="username" onFocus="if(this.value=='Username') this.value='Username';"/>
    <script type="text/javascript">
    var campo = new LiveValidation('username', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Length, { minimum: 4, tooShortMessage: "Il campo deve contenere minimo 4 caratteri" } );
    campo.add(Validate.Length, { maximum: 28, tooLongMessage: "Il campo può contenere massimo 28 caratteri" } );
    </script>

                                </td>
                            </tr>
                            <tr>
                                <td colspan="2" ><p class="pform"><strong>E-mail:</strong></p></td>
                                <td colspan="2" ><input name="mail" class="inputform" type="mail" id="mail" value="" onFocus="if(this.value=='Email') this.value='Email';" /> <script type="text/javascript">
    

    var campo = new LiveValidation('mail', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Email, { failureMessage: "Devi inserire un indirizzo e-mail valido!" } );
    campo.add(Validate.Length, { minimum: 4, tooShortMessage: "Il campo deve contenere minimo 4 caratteri" } );
    </script>
    </td>
    </tr>
    <tr>
    <td colspan="4">
    <?php if ($message) : ?>
    <p id="message"><?=$message?></p>
    <?php endif ?>
    </td>
    </tr>
    <tr>
    <td width="15%"><p class="pform"><strong>Password:</strong></p></td>
    <td width="35%"><input name="password" class="inputform" type="password" id="password" value="" onFocus="if(this.value=='Password') this.value='';" /> <script type="text/javascript">
    var campo = new LiveValidation('password', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Length, { minimum: 4, tooShortMessage: "Il campo deve contenere minimo 4 caratteri" } );
    campo.add(Validate.Length, { maximum: 28, tooLongMessage: "Il campo può contenere massimo 28 caratteri" } );

    </script>
    </td>
    <td width="15%"><p class="pform"><strong>Conferma:</strong></p></td>
    <td width="35%"><input name="password2" class="inputform" type="password" id="password2" value="" onFocus="if(this.value=='Password2') this.value='';" /> <script type="text/javascript">
    var campo = new LiveValidation('password2', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Confirmation, { match: 'password', failureMessage: "La password non corrisponde a quella inserita!" } );
    </script>
    </td>
    </tr>
    <tr>
    <td colspan="4"><br>
    <font color="#FF0000">Dati Personali</font> <br> </td>
    </tr>
    <tr>
    <tr>
    <td width="15%"><p class="pform"><strong>Nome:</strong></p></td>
    <td width="25%"><input name="name" class="inputform" type="text" id="name" value="" onFocus="if(this.value=='Nome') this.value='Nome';" /> <script type="text/javascript">
    var campo = new LiveValidation('name', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Length, { minimum: 3, tooShortMessage: "Il campo deve contenere minimo 3 caratteri" } );
    campo.add(Validate.Length, { maximum: 28, tooLongMessage: "Il campo può contenere massimo 28 caratteri" } );

    </script>
    </td>
    <td width="15%"><p class="pform"><strong>Cognome:</strong></p></td>
    <td width="35%"><input name="surname" class="inputform" type="text" id="surname" value="" onFocus="if(this.value=='Cognome') this.value='Cognome';" /> <script type="text/javascript">
    var campo = new LiveValidation('surname', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Length, { minimum: 3, tooShortMessage: "Il campo deve contenere minimo 3 caratteri" } );
    campo.add(Validate.Length, { maximum: 28, tooLongMessage: "Il campo può contenere massimo 28 caratteri" } );

    </script>
    </td>
    </tr>
    <tr>
    <td><p class="pform">Azienda:</p></td>
    <td colspan="3"><input name="azienda" class="inputform" type="text" id="azienda" value="" onFocus="if(this.value=='Nome Azienda') this.value='Nome Azienda';"/> <script type="text/javascript">
    var campo = new LiveValidation('surname', { validMessage: "OK!" });
    campo.add(Validate.Length, { maximum: 200, tooLongMessage: "Il campo può contenere massimo 200 caratteri" } );
    </script>
    </td>
    </tr>
    <tr>
    <td><p class="pform">Occupazione:</p></td>
    <td colspan="3"><input name="occupazione" class="longinputform" type="text" id="occupazione" value="" onFocus="if(this.value=='Occupazione') this.value='Occupazione';" size="65" /> <script type="text/javascript">
    var campo = new LiveValidation('surname', { validMessage: "OK!" });
    campo.add(Validate.Length, { maximum: 200, tooLongMessage: "Il campo può contenere massimo 200 caratteri" } );
    </script></td>
    </tr>
    <tr>
    <td colspan="4"><br>
    <font color="#FF0000">Residenza</font> <br> </td>
    </tr>
    <tr>
    <td width="93"><p class="pform"><strong>Indirizzo:</strong></p></td>
    <td colspan="3"><input name="indirizzo" class="longinputform" type="text" id="indirizzo" value="" onFocus="if(this.value=='Indirizzo') this.value='Indirizzo';" size="65" /> <script type="text/javascript">
    var campo = new LiveValidation('indirizzo', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Length, { minimum: 3, tooShortMessage: "Il campo deve contenere minimo 3 caratteri" } );
    campo.add(Validate.Length, { maximum: 200, tooLongMessage: "Il campo può contenere massimo 200 caratteri" } );
    </script>
    </td>
    </tr>
    <tr>
    <td width="93"><p class="pform"><strong>Città:</strong></p></td>
    <td width="120"><input name="citta" class="inputform" type="text" id="citta" value="" onFocus="if(this.value=='Città') this.value='';" /> <script type="text/javascript">
    var campo = new LiveValidation('citta', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Length, { minimum: 3, tooShortMessage: "Il campo deve contenere minimo 3 caratteri" } );
    campo.add(Validate.Length, { maximum: 200, tooLongMessage: "Il campo può contenere massimo 200 caratteri" } );
    </script>
    </td>
    <td width="83"><p class="pform"><strong>Comune:</strong></p></td>
    <td width="120"><input name="comune" class="inputform" type="text" id="comune" value="" onFocus="if(this.value=='Comune') this.value='';" /> <script type="text/javascript">
    var campo = new LiveValidation('comune', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Length, { minimum: 2, tooShortMessage: "Il campo deve contenere minimo 2 caratteri" } );
    campo.add(Validate.Length, { maximum: 200, tooLongMessage: "Il campo può contenere massimo 200 caratteri" } );
    </script>
    </td>
    </tr>
    <tr>
    <td width="93"><p class="pform"> <strong>Provincia:</strong><br>
    <em>[ sigla ]</em> </p></td>
    <td width="120"><input name="provincia" type="text" id="provincia" value="" onFocus="if(this.value=='Provincia') this.value='';" size="3"/> <script type="text/javascript">
    var campo = new LiveValidation('provincia', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Length, { is: 2, wrongLengthMessage: "Il campo deve contenere 2 caratteri" } );
    </script>

    </td>
    <td width="83"><p class="pform"><strong>Cap:</strong></p></td>
    <td width="120"><input name="cap" class="inputform" type="text" id="cap" value="" onFocus="if(this.value=='Cap') this.value='Cap';" size="10"/> <script type="text/javascript">
    var campo = new LiveValidation('cap', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Numericality, { notANumberMessage: "Puoi inserire solo numeri!" });
    campo.add(Validate.Length, { maximum: 5, tooLongMessage: "Il campo può contenere massimo 5 caratteri" } );
    </script>
    </td>
    </tr>
    <tr>
    <td colspan="4"><br>
    <font color="#FF0000">Riferimenti</font> <br> </td>
    </tr>
    <tr>
    <td width="93"><p class="pform"><strong>Tel. / Cell.:</strong></p></td>
    <td width="120"><input name="telefono" class="inputform" type="text" id="telefono" value="" onFocus="if(this.value=='Telefono') this.value='Telefono';" /> <script type="text/javascript">
    var campo = new LiveValidation('telefono', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Numericality, { notANumberMessage: "Puoi inserire solo numeri!" });
    campo.add(Validate.Length, { maximum: 20, tooLongMessage: "Il campo può contenere massimo 20 caratteri" } );
    </script></td>
    <td width="83"><p class="pform">Fax.:</p></td>
    <td width="120"><input name="fax" class="inputform" type="text" id="fax" value="" onFocus="if(this.value=='Fax') this.value='Fax';" /> <script type="text/javascript">
    var campo = new LiveValidation('fax', { validMessage: "OK!" });
    campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
    campo.add(Validate.Numericality, { notANumberMessage: "Puoi inserire solo numeri!" });
    campo.add(Validate.Length, { maximum: 20, tooLongMessage: "Il campo può contenere massimo 20 caratteri" } );
    </script></td>
    </tr>
    <tr>
    <td colspan="4"><p align="center"><font color="#006699"><strong><em><u>I dati in grassetto sono obbligatori.</u></em></strong></font></p></td>
    </tr>
    <tr>
    <td colspan="4" align="right"><input name="registra" type="image" src="../images/contact-send.gif" value="Registrati" /></td>
    </tr>
    </table></td>
    </tr>
    </table>
    </div>
    </form>


  • ModSenior

    La prima pagina che hai postato suppongo sia privata.php.
    Prova a mettere:
    [php]
    if(isset($_POST['username']))
    [/php]
    al posto di:
    [php]
    if(isset($_POST['registra']))
    [/php]


  • User

    Ok perfetto adesso funziona però prima ho dovuto anche cancellare l'action del form deve rimanere in bianco il campo quindi <form action="" method="post"> e funziona grazie mille ancora!


  • User

    Salve,
    Mi capita una cosa un po strana, io al momento del login imposto anche una seconda variabile di sessione, cioè $_SESSION['admin'], questa serve per stabilire i privilegi di certi utenti.

    Il problema arriva quando visualizzo una pagina, cioè la lista degli admin.
    Andando su questa pagina improvvisamente $_SESSION['admin'] da valore 1 assume valore 0, come mai? :S
    Ecco il codice della pagina:

    lista_admin.php
    [php]<?php
    require('config.php');
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Lista Admin</title>
    <link rel="stylesheet" href="/theme/style.css" type="text/css">
    </head>

    <body>

    <?php
    $admin = mysql_query("SELECT id, user, data_ins FROM utenti
    WHERE privilegi = '1' ORDER BY id") OR die(mysql_error());
    ?>
    <table><tr><td>
    <?php
    require('menu.php');
    ?>
    </td><td>
    <table border="1"><tr><th>#</th><th>Nome</th><th>Data</th></tr>
    <?php
    $i=1;
    while($lista_admin = mysql_fetch_array($admin))
    {
    echo '<tr>
    <td>'.$i.'</td>
    <td> <a href="/profile.php?id='.$lista_admin['id'].'">'.$lista_admin['user'].'</a> </td>
    <td> '.date('d M Y - G:i:s', $lista_admin['data_ins']).' </td>
    </tr>';
    $i++;
    }
    ?>
    </table>
    <?php
    require('footer.php');
    ?>
    </body>

    </html>
    [/php]

    In footer.php viene il link al Pannello Amministratore se $_SESSION['admin'] è uguale a 1.
    Ecco il codice:
    [php]<br /><?php if($_SESSION['admin'] == 1) { echo'<div align="center"><a href=" / privata.php?page=admin"><strong>Pannello Amministratore</strong></a></div>'; } ?>[/php]

    Potete aiutarmi?


  • ModSenior

    Ciao RCayla,

    il session_start è nel config.php?
    Gli altri valori in $_SESSION rimangono o si perdono pure quelli?


  • User

    Si e si 😛
    Nel senso che c'è session_start() e le altre variabili di sessione restano uguali, per testare ho fatto un echo delle due variabili e dopo essere andato nella lista admin la variabile $_SESSION['admin'] da 1 diventa "Resource id #7" :S


  • ModSenior

    Resource id #7 dovrebbe essere il valore restituito da mysql_query.
    E' possibile che stai usando $admin invece di $_SESSION['admin']?


  • User

    Scusa non ho capito, dove sto usando $admin invece di $_SESSION['admin']?


  • ModSenior

    Resource id #7 è un valore restituito dalla funzione mysql_query.
    Quindi o stampi la variabile sbagliata oppure la sovrascrivi.


  • User

    Allora, subito dopo il login in tutte le pagine $_SESSION['admin'] risulta 1, se vado in lista_admin risulta Resource id # 7 e dopo essere stato in questa pagine, in tutte le altre risulta 0, quindi è come se il valore cambiasse, eppure nel codice di lista_admin.php la variabile $_SESSION['admin'] non viene mai nominata..


  • ModSenior

    Non sò che dirti, l'unica cosa che mi sembra possibile è quella.


  • User

    Risolto, ho cambiato nome alla variabile che eseguiva la query e alla variabile del mysql_fetch_array, strano :mmm:


  • User Newbie

    Ciao a tutti, volevo provare a creare un login di un sito web, ma essendo un autodidatta e non so come fare qualcuno potrebbe aiutarmi? Grazie 1000.


  • ModSenior

    Ciao giov75,

    nel tutorial è spiegato come realizzare registrazione e login.


  • User Newbie

    Ciao Thedarkita,
    scusami ancora ma dove lo trovo questo tutorial? scusami ancora.


  • ModSenior

    Lo trovi alla pagina 1 di questa discussione.


  • User Newbie

    Scusami una scaricato il tutorial i file dove li devo posizionare?


  • ModSenior

    Ciao giov75,
    fai attenzione alle maiuscole...
    I file devi metterli sul server.


  • User Newbie

    Ok scusate.😢


  • User Newbie

    Thedarkita,
    adesso devo creare le pagine di ognuna di essa?