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

    [php] sistema sessioni con php e mysql

    salve, premetto che ho letto l'articolo sulle sessioni alternative però volevo chiedere a qualcuno una mano,io vorrei fare un sistema di registrazione,sessioni,e login in un sito,le sessioni le vorrei salvare nel database,le sessioni devono essere collegate in qualche modo all'utente tipo se sessione loggata o anonima,infine non so come fare in modo che se un utente entra nel sito tramite lettura cookie viene loggato in automatico se qualcuno potesse buttarmi 2 righe di esempio gliene sarei grato ciao e grazie!

  2. #2

  3. #3
    ho fatto questo codice che però non iserisce nulla nel database non so perchè;
    Codice PHP:
    <?

    function inizia_sessione()
    {
      global 
    $db;
      if (isset(
    $_COOKIE['smk_data']))
      {
        
    $cookie explode('-'$_COOKIE['smk_data']);
        
    $username unserialize($cookie[0]);
        
    $password unserialize($cookie[1]);
        
    $query $db->sql_query('SELECT * FROM smk_utenti WHERE u_username = '.$username) or die(mysql_error());
        
    $result $db->sql_fetch_row($query) or die(mysql_error());
        if (
    $password == $result['u_password'])
        {
          
    lancia_sessione($loggato TRUE$user_id $result['u_id']);
        }
      }
      else 
      {
        
    lancia_sessione($loggato FALSE$user_id 1);
      }
      if (isset(
    $_GET['s']))
      {
        
    controlla_sessione();
      }
    }

    function 
    lancia_sessione($loggato$user_id)
    {
      global 
    $db;
      
    $session_data['session_id'] = md5(uniqid(microtime()));
      
    $current_time time();
      
    $query $db->sql_query('DELETE FROM smk_sessioni WHERE s_id = '.$session_data['session_id'].' OR UNIX_TIMESTAMP(NOW()) - s_time => 3600') or die(mysql_error());
      if (
    $loggato == TRUE)
      {
        
    $logged 1;
        
    $query $db->sql_query('INSERT INTO smk_sessioni (s_id, s_time, s_user_id, s_logged_in) VALUES ('.$session_data['session_id'].', '.$current_time.', '.$user_id.', '.$logged.')') or die(mysql_error());
      }
      else
      {
      
    $logged 0;
      
    $query $db->sql_query('INSERT INTO smk_sessioni (s_id, s_time, s_user_id, s_logged_in) VALUES ('.$session_data['session_id'].', '.$current_time.', '.$user_id.', '.$logged.')') or die(mysql_error());
      }  
      
    $session_data['session_logged_in'] = $logged;
      
    $session_data['session_userid'] = $user_id;
      return 
    $session_data;  
    }  

    function 
    controlla_sessione()
    {
      
    $session_id $_GET['s'];
      if (
    strlen($session_id) != 32)
      {
        return 
    FALSE;
      }
      
    $query $db->sql_query('SELECT COUNT(s_id) FROM smk_sessioni WHERE s_id = '.$session_id.' AND UNIX_TIMESTAMP(NOW()) - s_time <= 1800') or die(mysql_error());
      
    $result mysql_fetch_row($query);
      if (
    $result[0] == 0)
      {
        return 
    FALSE;
      }
      
    $query $db->sql_query('UPDATE smk_sessioni SET s_time = UNIX_TIMESTAMP(NOW()) WHERE s_id = '.$session_id) or die(mysql_error());
      return 
    TRUE;  
    }

    ?>

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.