Ho un'app PHP che sto cercando di limitare il numero di utenti che possono essere attivi in qualsiasi momento. Vorrei mantenerlo il più leggero possibile poiché il motivo per implementarlo è perché il nostro attuale server non è in grado di gestire il carico, quindi questa è una soluzione temporanea finché non potremo eseguire l'aggiornamento. Archiviamo le nostre sessioni in memcache, quindi ho scritto il seguente script per contare le sessioni attive e archiviarlo in un file flat: questo script viene eseguito ogni 5 minuti.Limite utente per la mia app PHP - con codice di esempio
<?php
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211);
$activeSessions = $memcache->getStats();
$file_content = <<<TEXT
<?php
\$activeSessions = {$activeSessions['curr_items']};
?>
TEXT;
file_put_contents("activesessions.php", $file_content);
?>
Ora nella parte superiore di ogni pagina è facile scoprire come molti utenti sono al momento attivi ... il mio problema ora è se c'è più rispetto al limite di smettere di più persone la creazione di sessioni. Il motivo per cui questo è un problema è che non ho modo di sapere se l'utente carica già la pagina ha una sessione attiva senza fare qualcosa di simile:
<?php
include ('activesessions.php');
//uid is the users facebook id
session_id(md5($uid.$secret));
session_start();
if ($activeSessions > $limit && empty($_SESSION))
{
session_destroy();
include('limit_message.php');
exit;
}
?>
che dovrebbe fare il trucco, ma nel processo si creerà una sessione per verificare se la sessione esiste: S ... in tal modo distorcendo il conteggio della sessione attiva.
Quindi in sostanza ho una soluzione ... la mia domanda però è che qualcuno ne abbia una migliore? Se invece pensate che la mia soluzione è la migliore si prega di commento o di up-voto per farmi sapere: D
Si prega di aiutare :)
Così tante visualizzazioni e non un po 'di feedback: S –
Possibile duplicato di [Conta e limita il numero di utenti sulla mia app] (http://stackoverflow.com/questions/4065026/). – netcoder