• ModSenior

    Ciao BlueDragon89,

    Benvenuto nel forum GT.
    Controlla che, se per esempio il link a cui vai dall'email è miosito.ext/attivazione.php, anche il file di attivazione si chiami attivazione.php


  • User

    ah can hai ragione!! li avevo spostati nella cartella password adesso riprovo-.--:surprised:


  • User

    allora mi dava il warning ma ho tolto il &update come avevate già scritto e mi rimane solo l'errore "Errore, link non valido"


  • ModSenior

    Ciao BlueDragon89,

    Nonostante l'errore di prima, l'account è stato attivato ugualmente.
    Riprova con un altra registrazione se è tutto funzionante...


  • User

    nnoonononon c'è sono felicissimo adesso....aceaceace!!! ci ho messo mesi a trovare un forum serio come questo...era ora! gentilissimo grazie!!!

    eh piccola cosetta...adesso i campi di default sono quei 3 li nome pass email se ne voglio altri basta che aggiungo tranquillamente sia nei file ke sul database mi faccio altri campi...e se io volessi anche far modificare il profilo agli utenti..sarebbe possibile?


  • ModSenior

    Prego 😉


  • User

    Per via della modifica del profilo inserito in registrazione si può fare qualcosa? E sto provando ad inserire dei nuovi campi però non me li registra sul database..


  • ModSenior

    Per gli altri campi devi, modificare la pagina di registrazione prelevando le variabili POST e passarli alla query dopo aver effettuato gli opportuni controlli.


  • User

    ok adesso provo...^^


  • User

    Ciao ragazzi,

    scusate una domanda: gli script che trovo in questo topic li posso usare per creare un' area riservata per un sito di consulenze?..

    ...vi spiego: un mio amico mi vuole commissionare un sito, e vuole dare delle PSW ai suoi clienti, e nell' Area Riservata, scambiare dati in modo sicuro con ogni cliente.

    Questi scripts fanno al caso mio?

    Grazie 🙂

    Mauro


  • ModSenior

    Ciao mauretto78,

    Ci vorrà qualche piccola modifica sulle registrazioni per dare solo all'admin la possibilità di creare account.
    Ma in linea di massima direi che con qualche piccola modifica lo script è adattabile.


  • User Newbie

    Grazie mille Thedarkita, questo tutorial è fatto molto bene ed è veramente chiaro...!!

    Adesso me lo personalizzo un attimo... 😄
    Ancora complimentoni e grazie! 🙂


  • User

    Ottimo script di login Thedarkita, ho utilizzato con successo il tuo script modificando qualche aspetto senza comprometterlo e funziona alla grande, ma adesso mi piacerebbe avere uno script basato su quello del "Login" che possa recuperare la password all'utente distratto, anche con un invio email e possibimente da testare in locale con easyphp.
    grazie


  • ModSenior

    Ciao,

    Per quanto rigaurda farlo funzionare in locale devi sistemarmi l'smtp del webserver.

    Per quanto riguarda il recupero password, la password non può essere recuperato poichè viene salvato l'hash md5 nel database, puoi inviare un email che permetta di modificare la password.
    Solitamente ciò si fa nel metodo seguente:

    • Creazione tabella richieste di recupero(3 campi : id utente, codice, data)
    • Quando inizio la procedura, inserisco nella tabella l'id utente e un codice univoco, inivio un email all'utente con un link a reset.php?idutnte=ID&code=CODICEUNIVOCO
    • Quando apro il collegamento dell'email viene generata una password in modo casuale e viene fatto un update del record dell'utente, e viene spedita un email contente la nuova password.

  • User

    TheDarkita, qua per me è già tabù, tieni conto che di php sono piuttosto negato. Non è che mi puoi inserire un esempio (tutorial) qua? ossia la query della tabella nel database e lo script php completo, te ne sarei grato veramente.
    grazie


  • ModSenior

    Ciao,

    Per il momento non ho moltissimo tempo, quindi a poco a poco vediamo di fare il recupero password 😄

    Database:

    
    CREATE TABLE `utenti_recupero` (
    `r_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `r_utente` INT NOT NULL ,
    `code` TEXT NOT NULL
    ) ENGINE = MYISAM ;  
    
    

  • User

    wow interessante!


  • User

    Grazie per adesso Thedarkita, comincio per creare il database, e vedo se incomincio a capire come dovrò impostare lo script, ci raggionerò sopra! Almeno ci provo !!!! In attesa del tuo script , sicuramente funzionale come quello del login.


  • ModSenior

    Ecco un altro pezzo, che si occupa di inserire nella tabella richiesta, non ho provato se funziona correttamente.

    recupero.php
    [php]

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

    // Se il modulo viene inviato...
    if(isset($_POST['recupera']))
    {
    // Dati Inviati dal modulo
    $mail = (isset($_POST['mail'])) ? trim($POST['mail']) : ''; // Metto nella variabile 'mail' 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())
    $mail = addslashes($mail);
    if(!eregi("^[a-z0-9][
    .a-z0-9-]+@([a-z0-9][0-9a-z-]+.)+([a-z]{2,4})", $mail))
    die('Email non valida');
    else
    {
    // Cerco se c'è un utente registrato con questa email
    $query_recupero = mysql_query("SELECT id FROM utenti WHERE mail = '$mail' LIMIT 1");

    // L'utente esiste?
    if(mysql_num_rows($query_recupero) == 0)
        die('Nessun utente registrato con questa email');
    
    // Inserisco i dati dell'utente recuperati mediante la query in un array
    $recupero = mysql_fetch_array($query_recupero);
    
    // Chiave random con un semplice algoritmo
    $tempo = microtime(); // Richiamo la funzione microtime
    $tempo = explode(' ', $tempo); // Divido in un array utilizzando il separatore " "
    $tempo[0] = floatval($tempo[0]); // Converto in tipo float
    $tempo[1] = floatval($tempo[1]); // Converto in tipo float
    $chiave = $recupero['id'].'-'.md5($tempo[0] + $tempo[1]); // Chiave unica per ogni utente
    
    // Query per l'inserimento nel database della richiesta di recupero
        $strSQL = "INSERT INTO utenti_recupero (r_utente,code)";
        $strSQL .= "VALUES('{$recupero['id']}', '$chiave')";
        mysql_query($strSQL) OR die("Errore 001, contattare l'amministratore ".mysql_error());
    
    // Inviamo l'email all'utente
    $message = 'Per modificare la password del Suo account deve visitare il seguente link:<br><a href="http://www.sito.ext/recupero.php.php?code='.$chiave.'">Resetta password</a>';
        // Header dell'email, per mandarla in formato html
        $headers = "From: NomeSito <[email protected]>\r\n";
        $headers .= "Reply-To: [email protected]\r\n";
        $headers .= "Return-Path: [email protected]\r\n";
        $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    
        // Invio L'email
        mail($mail, 'Reset password - Tutorial Area Privata', $message, $headers);
    
    die('Le abbiamo inviato un email contenente le istruzioni per il reset della password, controlli la sua casella email!');
    

    }
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Recupero password</title>
    </head>

    <body>
    <form action="" method="post">
    <input name="mail" type="text" id="mail" value="Em@il" onfocus="if(this.value=='Em@il') this.value='';" /><br />
    <input name="recupera" type="submit" value="Reimposta Password" /><br />
    </form>
    </body>
    </html>
    [/php]


  • User

    grazie Darkita, adesso ci provo, se qualcosa non va te lo faccio sapere; THANK !!!