Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Sessione critica

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    231

    Sessione critica

    Salve,
    dovrei fare una pagina php che pemetta l'accesso soltanto ad un utente alla volta.
    Suggerimenti?

  2. #2
    Non credo che si possa verificare se un utente sta già visualizzando una pagina in un dato momento, perchè l'utente si connette effetivamente al server soltanto al momento di scaricare la pagina.
    La differenza fra la genialità e la stupidità è che la genialità ha i suoi limiti.


  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    231
    Ok, grazie lo stesso. Stavo pensando ad un'altra soluzione..
    C'è un modo di ottenere il numero di utenti connessi a Joomla ?

  4. #4
    Si joomla ha in se un modulo per contare gli utenti collegati (visitatori o registrati che siano), se poi vuoi contarli in un sistema esterno devi collegarti alle tabelle di Joomla.

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da alelaps
    Salve,
    dovrei fare una pagina php che pemetta l'accesso soltanto ad un utente alla volta.
    Suggerimenti?
    un metodo ci sarebbe.... ma non conosco joomla e non sò se fattibile...

    le sessioni sono fondamentalemnte array serializzati scritti su file.
    se non si impostano path riservati per il salvataggio della sessione, queste vengono archiviate nella cartella tmp del server web definita nel php.ini

    ecco la mia soluzione:

    innanzitutto
    Codice PHP:
    ini_set('session.save_path''tua cartella'); 
    questo dice al php che le sessioni saranno salvate in una cartella specifica del sito. Occhio perchè così facendo dovrai cancellare te i files sessione piu vecchi!!!

    chi accede alla pagina avrà una variabile in sessione chiamata ad esempio
    Codice PHP:
    $_SESSION['loc']; 
    successivamente , supponendo che la cartelal dove salvi le sessioni sia denominata ciccio
    Codice PHP:
    if(allowPage() == false){
        echo 
    "pagina non disponibile
    "
    ;
        }



    function 
    allowPage(){
        
    $files=glob('ciccio/sess_*');
        foreach(
    $files as $file){
            
    $tmp=unserialize(file_get_contents($file));
            if(isset(
    $tmp['loc']))
                return 
    false;
            }
        return 
    true;
        } 
    occhi che il navigatore, quando cambia pagina, dovrà avere la variabile di session $_SESSION['loc'] ELIMINATA
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Joomla le sessioni, salvo diversa configurazione, le salva nel database.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    231
    Originariamente inviato da MichelangeloSco
    Joomla le sessioni, salvo diversa configurazione, le salva nel database.
    Hai ragione, infatti è stato piuttosto semplice.
    Grazie a tutti, sono arrivato alla soluzione.

    In particolare è bastato copiare una funzione del modulo 'mod_whosonline', questa:

    codice:
    $db		  =& JFactory::getDBO();
    		$sessions = null;
    		// calculate number of guests and members
    		$result      = array();
    		$user_array  = 0;
    		$guest_array = 0;
    
    		$query = 'SELECT guest, usertype, client_id' .
    					' FROM #__session' .
    					' WHERE client_id = 0';
    		$db->setQuery($query);
    		$sessions = $db->loadObjectList();
    
    		if ($db->getErrorNum()) {
    			JError::raiseWarning( 500, $db->stderr() );
    		}
    
    		if (count($sessions)) {
    		    foreach ($sessions as $session) {
    			    // if guest increase guest count by 1
    				if ($session->guest == 1 && !$session->usertype) {
    				    $guest_array ++;
    				}
    				// if member increase member count by 1
    				if ($session->guest == 0) {
    					$user_array ++;
    				}
    			}
    		}
    
    		$result['user']  = $user_array;
    		$result['guest'] = $guest_array;
    Se $result['user'] > 1 nega l'accesso.
    Non è esattamente quello che cercavo ma ci assomiglia molto.

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.