Salve,
dovrei fare una pagina php che pemetta l'accesso soltanto ad un utente alla volta.
Suggerimenti?
Salve,
dovrei fare una pagina php che pemetta l'accesso soltanto ad un utente alla volta.
Suggerimenti?
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.
Ok, grazie lo stesso. Stavo pensando ad un'altra soluzione..
C'è un modo di ottenere il numero di utenti connessi a Joomla ?
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.
un metodo ci sarebbe.... ma non conosco joomla e non sò se fattibile...Originariamente inviato da alelaps
Salve,
dovrei fare una pagina php che pemetta l'accesso soltanto ad un utente alla volta.
Suggerimenti?
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
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!!!Codice PHP:
ini_set('session.save_path', 'tua cartella');
chi accede alla pagina avrà una variabile in sessione chiamata ad esempio
successivamente , supponendo che la cartelal dove salvi le sessioni sia denominata ciccioCodice PHP:
$_SESSION['loc'];
occhi che il navigatore, quando cambia pagina, dovrà avere la variabile di session $_SESSION['loc'] ELIMINATACodice 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;
}
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
Joomla le sessioni, salvo diversa configurazione, le salva nel database.
Hai ragione, infatti è stato piuttosto semplice.Originariamente inviato da MichelangeloSco
Joomla le sessioni, salvo diversa configurazione, le salva nel database.
Grazie a tutti, sono arrivato alla soluzione.
In particolare è bastato copiare una funzione del modulo 'mod_whosonline', questa:
Se $result['user'] > 1 nega l'accesso.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;
Non è esattamente quello che cercavo ma ci assomiglia molto.