Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Cookie login

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    75

    Cookie login

    Ho un problema con la mia login , non riesco a fare funzioanre il sistema dei cookie , e la login non recupera i dati dai cookie...Mi potete aiutare?Grazie

    Codice login :

    Codice:

    Codice PHP:

    <?

                   $logout 
    $_GET['logout'];
                   
                   if( 
    $logout == '1' //se viene richiesto di fare logout
                      
    {   
                         
    $nickname=$_SESSION['nick'];
                      
                         
    $sql="UPDATE anagrafica SET Online='NO' WHERE Nick='$nickname'";
                      
                         
    $connection=mysql_connect("$db_host","$db_user","$db_password")or die ("Connessione non avvenuta");
                         
    $db=mysql_select_db("$db_database",$connection) or die ("Database non trovato");
                         
    mysql_query($sql) or die ("Query fallita:".mysql_error());
                      
                         
    //cancello il contenuto di tutte le variabili, distruggo l`intera sessione
                         
    $_SESSION = array();
                         
    session_destroy();
                      
                         
    //cancello i cookies
                         
    setcookie('nick','');
                         
    setcookie('pwd','');
                      
                      
                         
    //rinfresco la pagina
                         //(dopo il refresh apparirà la schermata di login "normale")
                         
    header("refresh: 1 ; URL=.index2.php");
                      
                         
    ob_end_flush();
                      
                      }
                      
                   else 
    //non è richiesto di fare il logout ma il login
                   
    {
                      if( isset(
    $_SESSION['loggato']) ) //se l`utente è già loggato
                      
    {
                         
    //stampo la stringa di benvenuto e il link di logout
                   
                         
    echo "Utente  : [b]".$_SESSION['nick']."</font>
    "
    ;
                         echo 
    "Livello : [b]".$_SESSION['autorizzato']."</font>
    "
    ;
                         echo 
    "<form method='post' action='index2.php?logout=1' style='display:inline'>
                                  <input name='logout' class='bottone' type='submit'  value='Logout'></form>"
    ;
                   
                         
    //se l`utente è amministratore faccio apparire anche il link Pannello
                         
    if($_SESSION['autorizzato'] == 'admin')
                            echo 
    "[url='?content=../pannello/pannello.htm']Pannello[/url]";
                            
                         
    //NOTA: i cookies vengono ignorati!
                   
                      
    }
                      else 
    //se l`utente non si è ancora autenticato ( = la sessione non è stata ancora creata )
                      
    {
                         
    //vedo se nei cookies sono mantenute informazioni relative a un precedente login:
                         //posso sfruttare queste per l`autenticazione!
                   
                         //controllo che entrambe le info siano presenti nel cookie
                         
    if( isset($_COOKIE['nick']) && isset($_COOKIE['pwd']) )
                         {
                            
    //per comodità salvo le variabili del cookie in due variabili del programma
                            
    $username =  $_COOKIE['nick'];
                            
    $password =  $_COOKIE['pwd'];
                   
                            
    //mi connetto al DB
                               
    $connection=mysql_connect("$db_host","$db_user","$db_password")or die ("Connessione non avvenuta");
                               
    $db=mysql_select_db("$db_database",$connection) or die ("Database non trovato");
                   
                            
    //eseguo la query
                            
    $query="SELECT * FROM `anagrafica` WHERE Nick ='$username' AND Pwd='$password'";
                            
    $result=mysql_query($query) or die ("Query fallita: " mysql_error());
                            
    $row=mysql_fetch_array($result);
                   
                            if(
    $_REQUEST['nick']==$row['Nick']) //se esiste un match
                            
    {
                               
    //creo la sessione e imposto i valori
                               
    $_SESSION['loggato']=1;
                               
    $_SESSION['autorizzato']=$row['autorizzato'];
                               
    $_SESSION['nick']=$row['Nick'];
                   
                               
    //creo i cookies
                               
    $scadenza=time()+3600// 600 = 60 secondi x 10 minuti
                               
    setcookie('nick',$username,$scadenza);
                               
    setcookie('pwd',$password,$scadenza);
                   
                               
    $sql2="UPDATE anagrafica SET Online='SI' WHERE Nick='".$_SESSION['nick']."'";
                               
    mysql_query($sql2) or die ("Query fallita:".mysql_error());
                               
    //rinfresco direttamente la pagina
                               //al riavvio la pagina vedrà che $_SESSION['loggato'] vale 1 e imposterà la pagina di conseguenza
                               
    header('refresh: 1');
                            }
                            else 
    //non esiste un match
                            
    {
                               
    //il cookie contiene probabilmente informazioni falsificate
                               //occorre fare uscire un avviso: User / Pwd errato
                            
    }
                         }
                         else 
    //se non ci sono sufficienti info nel cookie o se i cookies sono disabiliti: autenticazione manuale
                         
    {
                            
    $user $_POST['nick'];
                            
    $passw $_POST['pwd'];
                   
                            
    //se è in corso una richiesta di autenticazione la gestisco
                            
    if($user != "" && $passw != "")
                            {
                               
    //mi connetto al DB
                                  
    $connection=mysql_connect("$db_host","$db_user","$db_password")or die ("Connessione non avvenuta");
                               
    $db=mysql_select_db("$db_database",$connection) or die ("Database non trovato");
                      
    $query="SELECT * FROM `anagrafica` WHERE Nick ='$user' AND Pwd='$passw'";
                               
    $result=mysql_query($query) or die ("Query fallita: " mysql_error());
                               
    $row=mysql_fetch_array($result);
                   
                               if(
    $_REQUEST['nick']==$row['Nick']) //se esiste un match
                               
    {
                                  
    //creo la sessione e imposto i valori
                                  
    $_SESSION['loggato']=1;
                                  
    $_SESSION['autorizzato']=$row['autorizzato'];
                                  
    $_SESSION['nick']=$row['Nick'];
                   
                                  
    //creo i cookies
                                  
    $scadenza=time()+3600// 600 = 60 secondi x 10 minuti
                                  
    setcookie('nick',$user,$scadenza);
                                  
    setcookie('pwd',$passw,$scadenza);
                                  
    $sql3="UPDATE anagrafica SET Online='SI' WHERE Nick='".$_SESSION['nick']."'";
                                  
    $result=mysql_query($sql3) or die ("Query fallita:".mysql_error());
                   
                               
    //rinfresco direttamente la pagina
                                  //al riavvio la pagina vedrà che $_SESSION['loggato'] vale 1 e imposterà la pagina di conseguenza
                                  
    header('refresh: 1');
                                  
                               }
                               else 
    //non esiste un match
                               
    {
                                  
    //occorre fare uscire un avviso: User / Pwd errato
                   
                   
    ?>
                                  Nick o psw errati

                                  <form style="display:inline">
                                  <input name="riprova" class="bottone" type="submit"  onClick="history.back()" value="RIPROVA"></form>
                   <?
                               
    }
                            }
                            else 
    //altrimenti faccio apparire la form "normale"
                            
    {
                   
    ?>
                   

                   <form method='post' action='index2.php' style="display:inline">
                         <input type="text" name="nick" style="border:none" size="5" value="NICK">
                         <input type="submit" class="bottone" value="ENTRA  ">

                         <input type="password" name="pwd" style="border:none" size="5" align="right" value="PASS :">
                   </form>
                   
                   <form method="post" action="?content=registrazione.php" style="display:inline">
                         <input name="reg" class="bottone" type="submit" value="NUOVO">
                   </form>
                
                   <?         }
                         }
                      }
                   
                   }
                   
    ob_end_flush();
    ?>

    Non funziona il sistema dei cookie.
    In pratica non logga l'utente automaticamente, x cui credo o non crea il cookie, opp nel cookie non sono inserite le info giuste, oppure la login non recupera i dati dal cookie.


    La login funziona da sempre....Il probl apunto è ke ho aggiunto i cookie, ma nn funziano....

    Per favore, se potete aiutarmi mi fate un grande favore...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    75
    UP x favore..Ne ho bisogno...

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Allora prova così:

    Con FF e Opera (non so se pure con IE) è facile vedere che cookies ci sono ed il loro valore.
    Cerca il tuo cookie lì intanto. Aggiungerei anche un po' di echo qui e lì per vedere esattamente che variabili vengono lette/passate (ossia i vari echo("user name immesso: ".$user) etc etc dentro ogni if/else
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    75
    Ti prego aiutami, sto sclerando : ho provato di tt, ma non capisco dov'è l'errore....NN puoi testarla tu in locale, o non so...Cazz ke palle sti cookie ke nn funziano...

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    75
    Up x favore se possibile una mano ringrazio di cuore

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.