• User Attivo

    Appena prima di inserirla nel database...

    $password=md5($password);


  • User

    ho provato ma il problema è che dopo mi da errore di riscontro tra la password criptata e quella che metto in "conferma password". Se fosse solo da inserire la pass andrebbe bene...il problema che ho è quello del doppio inserimento password in "password" e in "conferma password". :arrabbiato:
    Qualcuno sa darmi qualche dritta?
    grazie mille


  • User Newbie

    strsql="INSERT INTO table_name (password) VALUES(MD5('$password')) ";
    controlla bene la posizione degli apici di md5, vado a memoria....:smile5:


  • User Attivo

    @danzur1981 said:

    ho provato ma il problema è che dopo mi da errore di riscontro tra la password criptata e quella che metto in "conferma password".
    Ho detto: appena prima di inserirla nel database! :wink3:


  • User

    Ok. Problema risolto. Grazie mille ad entrambi.

    INSERT INTO utenti (nomeutente, cognomeutente, email, username, password) VALUES ('$nomeutente','$cognomeutente','$email','$username',MD5('$password'))
    ```.
    Adesso però ho un problema che non riesco a risolvere:
    nella pagina di login dove devo mettere il codice MD5? :?
    Posto la pagina:
    

    $username = $_POST['username'];
    $password = $_POST['password'];

    $result = mysql_query("SELECT * FROM utenti WHERE username='$username'");
    if(mysql_num_rows($result) == 0)
    {
        echo "<br><br><br><br><br><p class='login'><b>$username</b> non esiste come utente registrato</p>";
        echo "<p class='login'>Riprova ad inserire i dati alla pagina di <a href='login.php'>LOGIN</a></p>";
    }    
    else
    {
        $check = mysql_fetch_array($result);
        $user = $check['username'];
        $pass = $check['password'];
        
        if($username == $user && $password == $pass)
        {
            
            $_SESSION['username'] = "$username";
            $_SESSION['password'] = "$password";
                echo "<br><br><br><p class='login'>Login effettuato con successo<br></p>";
                echo "<p class='login'>Benvenuto <b>$username</b><br></p>";
                echo "<p class='login'>Adesso puoi accedere al contenuto della pagina privata dalla <a href='index.php'>homepage</a></p>";
        }
        else {
        echo "<br><br><br><br><p class='login'>Password errata<br></p>";
        echo "<p class='login'>Riprova ad inserire i dati alla pagina di <a href='login.php'>LOGIN</a></p>";
        }
    }
    
    
    Grazie mille dell'aiuto che mi state dando

  • User

    ora che hai inserito la password criptata ti conviene scaricare una classe in php che gestisce il login dell'utente.

    altrimenti diventa troppo complicato e non ne esci fuori facilmente


  • User Attivo

    @danzur1981 said:

    Adesso però ho un problema che non riesco a risolvere:
    nella pagina di login dove devo mettere il codice MD5? :mmm:
    Ragiona!
    Devi averlo bene in testa... analizza bene il problema.

    Adesso hai una tabella 'utenti' in cui sono memorizzati user e password (attenzione: la password non è memorizzata in chiaro bensì criptata).
    Dal form del login arrivano due dati: user e password (in chiaro).
    Non ti resta che 'trovare' nel database l'user e, una volta trovato, confrontare la sua password memorizzata con quella inserita nel login...

    Pensa bene: in che punto va criptata la password proveniente dal login?


  • User Attivo

    dal form arriva la password in chiaro:

    Es. prova

    Sul DB hai qualcosa tipo

    92j2h2h92h2g292j22j2j (in md5)

    Devi confrontare i due dati, come fai?


  • User

    Tutto risolto.
    Avevo già pensato alla soluzione e ci avevo già provato prima ancora di chiedere nel forum:

    $username = $_POST['username'];
        $password = md5($_POST['password']);
    

    ma purtroppo mi sono accorto solo ora che nella tabella utente avevo impostato come attributo del campo password una varchar(30) e l'MD5 cripta la password in una char(32). Mea culpa. Sorry!!! :arrabbiato:
    Grazie a tutti cmq. Meglio dare consigli come avete fatto che dare la soluzione direttamente.
    Al prossimo problema :giggle:


  • User Attivo

    @danzur1981 said:

    Meglio dare consigli come avete fatto che dare la soluzione direttamente.
    Credo che ragionare e capire sia molto meglio che ricevere la pappa pronta!:figo2:
    Tieni presente che se per caso decidi di utilizzare sha1() anzichè md5(), devi impostare 40 caratteri...:wink3:

    Ciao.


  • User Attivo

    Per sicurezza, io metterei un varchar(100) così se il contenuto è di 32, si setta in automatico a 32!