Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Script login con ricordami

    Ciao a tutti
    Ho spulciato gli script presenti su html ma non trovo, fra i tanti, uno script in php di login che abbia la funzione di "ricordami" nel login.

    Ad oggi uso uno script che utilizza il db su mysql, autentica l'utente e utilizza le sessioni. L'ho modificato e ho aggiunto la funzione ricordami che crea, una volta autenticato, un cookie.
    E funziona.

    Putroppo non essendo esperto il cookie è generico e l'utente e la pass non vengono controllate ogni volta perchè nel cookie non le memorizzo, basta avere il cookie generico che entri.


    Non riesco però a fare le modifiche corrette perchè mi incasino tra sessioni e cookie...volevo salvare l'user e la pass criptata sha1 nel cookie che poi veniva ogni volta controllata. Se un utente lo cancello così non entra più per esempio.

    Che dite? C'è qualcosa di già pronto e fatto bene in giro? Credo che il mio non sia molto efficente ma un pò pasticciato....

    Il sistema che ho pensato è corretto e sicuro secondo voi?


    Non mi serve la procedura di registrazione utenti...


    Grazie mille...

  2. #2
    Io farei cosi:

    1. crei un cookie e lo chiami ricordami.
    2. ci metti dentro un hash.
    3. salvi l'hash nel db alla riga dell'utente.
    4. all'accesso se l'hash nel cookie corrisponde con l'hash del db lo logghi, altrimenti no.

    in questo modo ti basta eliminare l'hash nel db per "sloggare" l'utente, e non metti nessun dato sensibile nel cookie.

    cmq aspettiamo consiglio dei più esperti
    Ciao!

  3. #3
    grazie per la risp....

    non so cosa si intende per hash ma salvando la pass criptata sha1 nel cookie credo no ci siano problemi di sicurezza, o sbaglio?

  4. #4
    Meglio usare un hash non riferibile alla password.
    Non ci vuole molto, lo crei solo se uno attiva la funzione ricordami

    puoi fare ad esempio md5(time());
    Ciao!

  5. #5
    allora, ho provato ad attivare il discorso del controllo sul cookie ma non mi funziona, non riesco neanche più ad accedere.

    Non capisco cosa sbaglio e chiedo gentilmente a qualcuno più esperto di me se può dare un'occhiata a questi script e cosa c'è che non va.
    Il problema è che non sempre c'è il cookie, se uno non vuole "ricordarsi" e quindi devo lavorare con le sessioni in modo che resti loggato.

    index.php (pagina iniziale)

    Codice PHP:
    </head>
    <?php  
    include("check_login.php");    
    #$nick = $_SESSION['nick'];  non so se serve questa definizione

    ?>    

    <body>
    Benvenuto nell'area riservata!
    </body>
    ....
    check_login.php
    (verifica se l'utente ha già una sessione loggata o un cookie
    Codice PHP:
    <html>
    <?php 
    if(!isset($_SESSION))  
    {  
    session_start();  
    }

    if (!isset(
    $_SESSION["autorizzato"]) || $_SESSION["autorizzato"] != 1
          {
            IF (!isset(
    $_COOKIE['nome'])) {
                echo 
    "

    <font color=666666 size='4'>Area riservata, accesso negato.
    "
    ;   
                echo 
    "

    Per effettuare il login clicca <a href='main_login.php'><font  
                         color='blue'>qui</font></a>.</p>"
    ;  
                die; 
            
        }
        echo 
    '<script language=javascript>document.location.href="login_verify.php"</script>';
    }

    ?>
    </html>
    login_verify.php
    fa la verifica delle credenziali inserite nel form o del cookie memorizzato (lo controllo ogni volta che accede l'utente anche se ha il cookie)
    Codice PHP:
    <html>
        <head></head>
        <body>
    <?php    
    ob_start
    ();   
    if(!isset(
    $_SESSION))  
    {  
    session_start();  
    }

    $log mysql_connect("localhost","root","") or die("cannot connect");        
              
    mysql_select_db("sito"$log) or die("cannot select DB");    

    IF (isset(
    $_COOKIE['nome'])) {
        
    $nick $_COOKIE['nome'];
        
    $pass $_COOKIE['password'];
        goto 
    a;
        }

    # PRIMA DI SALVARE I DATI, EFFETTUA UN CONTROLLO DEI CAMPI 
    if (!isset($_POST['nick']) || !isset($_POST['pass'])) { 
        exit; 


    if (empty(
    $_POST['nick']) || empty($_POST['pass'])) { 
        echo 
    '<script language=javascript>document.location.href="main_login.php"</script>'



    // username and password inviati dal form    
    $nick=strip_tags($_POST['nick']);   
    $pass=strip_tags($_POST['pass']);

    a:

    // protezione MySQL injection    
    $nick stripslashes($nick);    
    $pass stripslashes($pass);    
    $nick mysql_real_escape_string($nick);    
    $pass mysql_real_escape_string($pass);    
    $pass sha1($pass);


    $sql="SELECT * FROM users WHERE nickname='$nick' and passsword='$pass'";   


    $result=mysql_query($sql);

    # SE NON TROVA TALE OCCORRENZA EFFETTUA REDIRECT AL LOGIN 
    if(mysql_num_rows($result) != 1){ 
        
    mysql_close(); 
        echo 
    '<script language=javascript>document.location.href="main_login.php"</script>'


    # CREDENZIALI OK - NEL CASO IN CUI L'OCCORRENZA ESISTE CREA LA SESSIONE 

    $_SESSION["autorizzato"] = 1;      
    $_SESSION['nick'] = $nick;
    if (isset(
    $_POST['ricorda'])) {
        
    setcookie("nome"$nicktime()+2592000);
        
    setcookie("password"$passtime()+2592000);
    }


    // Redirect alla pagina riservata
        
    echo '<script language=javascript>document.location.href="index.php"</script>';    


    mysql_close(); 
    ob_end_flush(); ?>   

        </body>
    </html>

    e in ultimo, se dovesse servire riporto anche il file del form per l'inserimento delle credenziali....

    main_login.php
    Codice PHP:

    <html>
    <
    head>
    <
    link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
    <
    link rel="apple-touch-icon" href="icon_ipad.jpg"/>
    <
    title>PANEL CONTROL</title>

    </
    head>


    <
    body>
    <
    form name="form1" method="post" action="login_verify.php"
    <
    td
         <
    table border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">  
             <
    tr
                 <
    td colspan="3">[b]<font color=666666>ACCESSO AREA RISERVATA:</font>[/b]

    </
    td
             </
    tr
             <
    tr
                 <
    td width="100"><font color=666666>Nome utente</font></td> <td width="12">:</td
                 <
    td width="100"><input name="nick" type="text" id="nick"></td
             </
    tr>  
             <
    tr
                 <
    td><font color=666666>Password</font></td> <td>:</td>  
                 <
    td><input name="pass" type="text" id="pass"></td
             </
    tr>  
             <
    tr
                 <
    td></td>  
                 <
    td></td>  
                 <
    td align="right"><input type="submit" name="Submit" value="Entra"></td
             </
    tr
             <
    tr
                 <
    td>
    <
    input type="checkbox" name="ricorda"><font color=666666>ricordami</font></td>
                 <
    td></td>  
                 <
    td></td>  
             </
    tr
         </
    table
    </
    td>  
    </
    form>


    </
    body>
    </
    html
    Essendo uno script aggiustato un po' alla volta ci potrebbero essere un po' di strafalcioni, il fatto è che prima di attivare il discorso controllo cookie funzionava. Non so dove sbaglio....


    GRAZIE!

  6. #6
    ho fatto alcune prove, ho aggiunto un "die;" che mancava nel login verify nel caso in cui non trovava le credenziali valide (perchè mi creava lo stesso la sessione valida).


    Però non capisco come mai, non avendo cookie salvati e inserendo l'user e pass corrette non mi entra e mi torna sempre nel main_login.php come non fossero valide.

  7. #7

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 © 2025 vBulletin Solutions, Inc. All rights reserved.