Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250

    consiglio su sessioni e cookie

    salve a tutti,
    vorrei avere una consulenza da esperti del settore..
    mi sono documentato in rete.. ma ho visto tante e variate soluzioni, ma ho la paura di incapparmi in soluzioni poco performanti, visto la mia scarsa conoscenza in questa parte di programmazione.
    Vorrei sapere da voi, come gestite l'autenticazione su un portale di grosse dimensioni tipo yahoo o google.

    Attualmente utilizzo questo sistema di login:

    Codice PHP:
    if(($_POST[user])AND($_POST[pw]))
    {
        
    $r=mysql_query("SELECT * FROM $table WHERE user='$_POST[user]' AND pw=MD5('$_POST[pw]') AND attiva='si'");
        
    $d=mysql_fetch_array($r);
        if(
    $d[id])
        {
            
    $s_session "UPDATE $table SET session='$PHPSESSID' WHERE id='$d[id]'";
             
    $r_session mysql_query($s_session);
            
    $_SESSION['utente']=$d[id];
            
    $_SESSION['livello']=$d[categoria];
            
    $_SESSION['session']=$PHPSESSID;
            
        
    header("Location: ../pannello.phtml");    
        }else{
            
            
    header("Location: ../index.phtml?msg=error");
        
        }        

    Funziona tutto a perfezione.
    Il problema è che una volta chiuso il browser o dopo un tot di tempo.. la sessione scade e l'utente deve per forza di cose ri-loggarsi!
    Ho notato che Google e Yahoo (penso utilizzano i cookie) ti tiene la sessione aperta x settimane o mesi.
    Mi sono documentato.. tutti consigliano di utlizzare i cookie in questi casi. Mi confermate?
    Attualmente tutte le funzioni del portale sono gestite e controllate dalla dichiarazione della variabile $_SESSION['utente']. Il mio problema è.. se uso i cookie devo per forza riprendere in mano tutto il portale e sostituire $_SESSION['utente'] con $_COOKIE['utente']??

    vorrei un vostro consiglio

  2. #2
    le variabili SESSION vengono create quando un utente entra in un sito e vengono distrutte quando escono. Pertanto mantengono dei dati solo fintantochè il visitatore stà nel sito.
    Per evitare queste cose meglio usare i COOKIE per cui puoi stabilire la durata in secondi con l'istruzione SETCOOKIE, ad esempio

    Codice PHP:
    //crea un cookie di nome uTENTE, ci mette il valore di $id['id'] e lo fa durare un mese
    setcookie('utente'$id['id'], (60*60)*24*30);
    // recupera il valore del cookie UTENTE
    echo $_COOKIE['utente']; 
    un cookie viene memorizzato sul PC dell'utente che visita il sito, quindi non verrà mai distrutto e durerà in questo caso un mese intero senza problemi a meno che ripulisi la cache o i cookies..

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    ciao e grazie della risposta!
    Infatti.. era quello che avevo visto anch'io in giro.. sarò costretto a modificare e sostituire $_SESSION['utente'] con $_COOKIE['utente'] allora..
    Per quando riguarda la sicurezza.. ci sono rischi?
    nn è un problema se pubblico nel cookie l'id dell'utente vero?
    Nessuno riesce a modificare un cookie nel browser?

    Scusa le domande, ma sono inesperto in queste cose!

    grazie ancora

  4. #4
    vai pure tranquillo, non ci sono porblemi..a meno che nel browser l'utente non scelga di ripulire i cookies o utilizza una di quelle utility che fanno piazza pulita della rumenta nel PC, non ci sono rischi, anzi! un cookie ad esempio è utilissimo quando un utente fa un login ad un sito: tutte le volte che entra viene recuperato il cookie per farlo entrare subito senza la scocciatura di immettere ogni volta username e password.

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.