Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    decriptare password md5

    Inseriesco nel database la password in formato md5.

    Come faccio a "decriptarla" quando mi serve per accedere all'area privata?


    Cioe', se nel modulo di registrazione inserisco come password la parola "casa", nel database entrerà qualcosa tipo "doijfoejofwejpwjfpjfepwjfwepj"
    Pero' quando dovro' effettuare l'accesso se inserisco la parola casa non mi viene riconosciuta...
    Mai dire Mai

  2. #2

    Re: decriptare password md5

    Originariamente inviato da trippacchiello
    Inseriesco nel database la password in formato md5.

    Come faccio a "decriptarla" quando mi serve per accedere all'area privata?


    Cioe', se nel modulo di registrazione inserisco come password la parola "casa", nel database entrerà qualcosa tipo "doijfoejofwejpwjfpjfepwjfwepj"
    Pero' quando dovro' effettuare l'accesso se inserisco la parola casa non mi viene riconosciuta...
    intanto si tratta di un hash e non di una criptazione.

    Quando inserisci la password la devi passare (creare l'hash) a MD5()

    codice:
    $pwd = $_POST['password'];   // casa
    $pwd_md5 = MD5($pwd);
    
    select count(*)  from tab
    where username = '$user' and password = '$pwd_md5';
    Non puoi (non devi) manco tentare di risalire alla password. Se viene persa dovresti fornirne una provvisoria e "pretendere" che venga sostituita con una propria gia' al primo accesso eseguito con la pwd provvisoria.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    ok tutto perfetto, ora funziona.

    Volevo chiedere una cosa:
    vorrei creare 2 pagine, una di errore nel caso in cui user e pass (nel mio caso ho inserito email e pass) non sono corrette, l'altra pagina invece vorrei che contenesse i dati che deve vedere l'utente per esempio una pagina chiamata area_privata.php e fin qui non ci sono problemi perche' mi basta un header("location: area_privata.php");

    Vorrei pero' che se un utente digita nel browser, direttamente il nome di questa pagina, non sia accessibile senza aver fatto il login
    Come posso fare?
    Mai dire Mai

  4. #4
    devi creare una funzione che verifichi lo stato di login.

    Cioè se il login è corretto tu crei una variabile di sessione, ad esempio
    Codice PHP:
    $_SESSION['autenticato'] = TRUE
    Se tale variabile esiste ed è TRUE significa che l'utente è loggato (e viceversa).
    Farai quindi una funzione di questo tipo:
    Codice PHP:
    function is_logged(){
       if(isset(
    $_SESSION['autenticato'] AND $_SESSION['autenticato']==TRUE)){
       return 
    TRUE;
       }
    return 
    FALSE;

    Nella pagina area_privata.php dopo aver incluso le librerie necessarie farai
    Codice PHP:
    <?php
    require_once('librerie_necessarie.php');
    if(!
    is_logged()){
    exit(
    'accesso negato');
    }
    // tutto il resto...
    ?>
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  5. #5
    ok, risolto anche questo, ora mancano le ultime 2 cose, il logout per farlo disconnettere, come me lo creo?
    e poi vorrei visalizzare il messaggio CIAO NOME

    ma non capisco dove mettere il ciclo while per poter estrarre la variabile $nome

    Codice PHP:
    // preparo ed invio la query
        
    $query "SELECT * FROM partners WHERE email_hotel = \"$email_hotel\" AND password = MD5(\"$password\")";
        
    $result mysql_query($query);
        
    // controllo l'esito
        
    if (!$result) {
            die(
    "Errore nella query $query: " mysql_error());
        }
        
        
    $record mysql_fetch_array($result);
        
        if(!
    $record) {
            echo
    "<span class=attenzione>Email o password errati</span>";
            
    header("Location: login.php");
        } else {
            
    session_start();
            
    $_SESSION['id_partner'] = $record['id']; 
    Mai dire Mai

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    55
    Mi infilo sperando di dare un consiglio utile..

    Per disconnettere un utente io ho usato i GET..

    per esempio



    Codice PHP:
    <?php 
    if($_GET['exit']=='logout')
        
    session_destroy();
    ?>
    questo ad inizio di ogni pagina dove c'è il link per il Log-out, e il link è scritto così

    codice:
     Esci 
    P.S.

    Nelle query della tabelle utente i non selezionerei mai TUTTI I DATI..proprio per evitare che mi ritorni anche la password e che, in qualche modo a me ora ignaro, poi possa esser letto da qualcuno che vole testare le falle del sito..
    Quindi, per esempio, nella tabella USER dove ho ID_USER, NICK, PASSWORD, EMAIL, INDIRIZZO, TELEFONO

    le query non saranno mai SELECT * FROM USER WHERE etc. etc.
    ma SELECT ID_USER FROM USER WHERE etc. etc. oppure
    SELECT ID_USER, NICK, TELEFONO FROM USER WHERE etc. etc.

    Insomma..in base alle esigenze, ma mai far tornare un record con dentro la password..

    Forse è inutile, ma non fa mai male essere il più tranquilli possibile


  7. #7
    ma è un modo sicuro?
    Mai dire Mai

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    55
    Ad essere sincero non ci vedo nulla di non sicuro..
    perchè la funzione session_destroy(); distrugge la sessione (e quindi i dati in essa salvata) creata nel momento del log in...
    Questa tecnica viene anche usata da importanti browser game, quindi penso proprio di si..
    Non faccio nomi, ma se sei iscritto a qualcuno di essi noterai che durante il logout l'url risulterà essere:
    browsergamespecifico.it/index.php?action=externalLogout


    Per quanto riguarda sempre la sicurezza, ho editato il post di prima per darti un consiglio riguardo le query

  9. #9
    si si, grazie, ho letto tutto.

    cmq l'asterisco lo uso solo ora in fase di test, dopo logicamente estraggo solo quello che mi occorre e quindi evito di inserire email e pass
    Ad ogni modo devo solo estrarre il nome per poter visualizzare un messaggio di tipo CIAO NOME
    Mai dire Mai

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    55
    Perdonami...aggiungo una piccola finezza al mio sistema di logut

    Codice PHP:
    <?php 
    if(isset($_GET['exit']))
    {
        
    session_unset();
        
    session_destroy();
    }
    ?>
    con l'isset fai si che, se uno vedendo l'url vuole provare a cambiare il valore della variabile exit con un altro termine...Il logut verrà fatto lo stesso..cioè

    Se vado su miosito.it/index.php?exit=Casa

    o su miosito.it/index.php?exit=logout

    l'utente verrà disconnesso ugualmente


    infine la funzione session_unset() ti serve per svuotare le variabili di sessioni prima che vengano distrutte

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.