Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: [php] : probelma login

  1. #1

    [php] : probelma login

    ho un sistema di login così strutturato :

    ho tre tabelle nel mio database che mi servono a questo scopo :

    utente (nick,pass);
    utenti_online(utente,tempo);
    sessioni(id_sessione,nick,data);

    ed uno script php che ho all'entrata di ogni pagina:

    Codice PHP:

    require_once('SmartyConf.php');
    require_once (
    'db_use.php');

    session_start();
    printf("il tuo username è : %s "$_SESSION['username'] );
    if(!isset (
    $_SESSION['username'] ) )
    {
      if ( isset(
    $_COOKIE['id']) )
      {
        
    $id $_COOKIE['id'];
        
    //trova la sessione nella tabella sessioni per vedere se il cookie e valdio
        
    $trovato findSession($id);
        if (
    $trovato)
        {
          
    //trova la sessione a cui è associato il nick
          
    $nick findNickSessione($id);
          
    //imposta il nick di sessione
          
    $_SESSION['username'] = $nick;
                    
          
    startOnline($nick);
          
    delOffline();
                    
                    
          
    //crea un nuovo id di sessione
          
    srand ((double)microtime()*1000000 );
          
    $session_id md5(uniqidrand () ) );
          
    session_id($session_id);
          
    $new session_id();
          
    printf(" nuova sessione : %s     "$new );
          
    printf(" vecchia sessione : %s   "$id );
          
    //setta il cookie con il nuovo id di sessione
          
    setcookie ('id' ,session_id() ,time()+350 );
          
    //sostituisce la nuova sessione con la vecchia in SESSION
          
    destroyOldSession($id);
          
    newSession($new,$nick);    
          
    printf(" Cookie buono, username : %s \n",$_SESSION['username'] );
        }
        else
        {
          
    //cancello il cookie
          
    setcookie('id',"",-3600);
          
    //setto il nick di sessione a ospite
          
    $_SESSION['username']="ospite";
          
    printf(" Cookie non buono, username : %s \n",$_SESSION['username'] );
        }
      }
      else 
      {
        
    $_SESSION['username']="ospite" ;
        
    printf(" Non hai cookie, username : %s \n",$_SESSION['username'] );
      }
    }
    if ( 
    $_SESSION['username'] =="ospite" )
    {
      require_once(
    'logCheck.php');


  2. #2
    e logCheck.php è :

    Codice PHP:

    if (isset($_POST['user']) && isset($_POST['pass'])) 

      
    $esito contlog($_POST['user'],$_POST['pass']);
        
      if (
    $esito
      {
        
    //setta il nick di sessione
        
    $_SESSION['username'] = $user;
          
        
    //crea un nuovo id di sessione
        
    srand ((double)microtime()*1000000 );
        
    $session_id md5(uniqidrand () ) );
        
    session_id($session_id);
                
        
    //inserisce l'utente tra gli online
        
    startOnline($user);
                
        
    //cancella gli offline
        
    delOffline();
                
        
    //setto il nuovo cookie
        
    setcookie ('id' ,session_id() ,time()+350 );
                
        
    //creo una nuova sessione  in SESSION
        
    newSession(session_id(),$user );
                
        
    printf("hai fatto il login correttamente, nick : %s ",$_SESSION['username']);
                 
          
    $smarty->assign('ErrLog'"0" );
                
    $smarty->assign('username',$_SESSION['username']);
      }  
      else 
      {
        
    $smarty->assign('username',$_SESSION['username']);
        
    $smarty->assign('ErrLog'"1" );
      } 
    N.B.
    $smarty è un ogetto del template che uso non lo notate..tutte le stampe che faccio sono di controllo...

    ora arriviamo al mio problema...ogni volta che cambio o ricarico la pagina mi sparisce la sessione ed $_SESSION['username'] si setta a ospite...chi glie lo dice???


    help please

  3. #3
    innanzi tutto session_start(); deve essere messo come prima cosa in assoluto, prova così e vedi che succede

  4. #4
    tutte le operazioni sulle tabelle sono eseguite da uno script che non ho messo perchè penso isa ininfluente!

  5. #5
    non funziona lo stesso...xkè???

    chi è che distrugge la sessione???...chi è che risetta il $_SESSION['username'] a ospite????

    sto impazzendo...

  6. #6
    per darvi più completa la situazione, quando viene incluso il file logCheck.php viene visualizzato il form di login che ha come campi ovviamente nick e pass...

  7. #7
    Saro' nubbio ma ad una prima occhiata mi pare che sei tu stesso che azzeri e crei una nuova sessione tutte le volte.


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

  8. #8
    Codice PHP:
    session_start();
    require_once(
    'SmartyConf.php');
    require_once (
    'db_use.php');


    printf("il tuo username è : %s "$_SESSION['username'] );
    if(!isset (
    $_SESSION['username'] ) )
    {
      if ( isset(
    $_COOKIE['id']) )
      {
        
    $id $_COOKIE['id'];
        
    //trova la sessione nella tabella sessioni per vedere se il cookie e valdio
        
    $trovato findSession($id);
        if (
    $trovato)
        {
          
    //trova la sessione a cui è associato il nick
          
    $nick findNickSessione($id);
          
    //imposta il nick di sessione
          
    $_SESSION['username'] = $nick;
                    
          
    startOnline($nick);
          
    delOffline();
                    
                    
          
    //crea un nuovo id di sessione
          
    srand ((double)microtime()*1000000 );
          
    $session_id md5(uniqidrand () ) );
          
    session_id($session_id);
          
    $new session_id();
          
    printf(" nuova sessione : %s     "$new );
          
    printf(" vecchia sessione : %s   "$id );
          
    //setta il cookie con il nuovo id di sessione
          
    setcookie ('id' ,session_id() ,time()+350 );
          
    //sostituisce la nuova sessione con la vecchia in SESSION
          
    destroyOldSession($id);
          
    newSession($new,$nick);    
          
    printf(" Cookie buono, username : %s \n",$_SESSION['username'] );
        }
        else
        {
          
    //cancello il cookie
          
    setcookie('id',"",-3600);
          
    //setto il nick di sessione a ospite
          
    $_SESSION['username']="ospite";
          
    printf(" Cookie non buono, username : %s \n",$_SESSION['username'] );
        }
      }
      else 
      {
        
    $_SESSION['username']="ospite" ;
        
    printf(" Non hai cookie, username : %s \n",$_SESSION['username'] );
      }
    }
    if ( 
    $_SESSION['username'] =="ospite" )
    {
      require_once(
    'logCheck.php');

    prova.
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  9. #9
    dov'è che distruggo e rifaccio la sessione?

  10. #10
    [supersaibal]Originariamente inviato da Whitecrowsrain
    dov'è che distruggo e rifaccio la sessione? [/supersaibal]
    Codice PHP:
    destroyOldSession($id);
          
    newSession($new,$nick); 
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

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.