Come posso utilizzare la sessione nella tabella del database con php e mysql?imposta la sessione nel database in php
risposta
Si avrebbe bisogno di creare un oggetto in questo modo:
class SessionHandler
{
private static $lifetime = 0;
private function __construct() //object constructor
{
session_set_save_handler(
array($this,'open'),
array($this,'close'),
array($this,'read'),
array($this,'write'),
array($this,'destroy'),
array($this,'gc')
);
}
public function start($session_name = null)
{
session_start($session_name); //Start it here
}
public static function open()
{
//Connect to mysql, if already connected, check the connection state here.
return true;
}
public static function read($id)
{
//Get data from DB with id = $id;
}
public static function write($id, $data)
{
//insert data to DB, take note of serialize
}
public static function destroy($id)
{
//MySql delete sessions where ID = $id
}
public static function gc()
{
return true;
}
public static function close()
{
return true;
}
public function __destruct()
{
session_write_close();
}
}
Poi, prima session_start iniziato questa classe!
include 'classes/sessionHandlerDB.php';
$session = new SessionHandler();
$session->start('userbase');
$_SESSION['name'] = 'Robert Pitt'; //This is sent to SessionHandler::write('my_id','Robert Pitt')
echo $_SESSION['name']; //This calls SessionHandler::read($id)//$id is Unique Identifier for that
http://php.net/manual/en/function.session-set-save-handler.php
Puoi dirmi come posso utilizzare questo codice per impostare la sessione? C'è qualche differenza con le normali impostazioni di sessione? – shin
Bascially per usare $ _SESSION ... Questo interrogherà SessionHandler, il che significa che il gestore di sessione è l'intermediario, memorizza i dati e restituisce i dati, Se si applica il proprio gestore è possibile memorizzarlo in qualsiasi modo, DB, File etc L'esecuzione di questo dirà a PHP che quando si utilizza la Session per interrogare questa classe per i dati. finché non includi questo file e ne crei un'istanza, tutto il resto non cambierà, il metodo di archiviazione sarà DB. Ho aggiornato il mio post, per favore rivedere – RobertPitt
Anche questo codice è puramente esemplificativo, lo estenderei per avere un oggetto di archiviazione in modo da ridurre le chiamate a db, inoltre guarda MemCached! – RobertPitt
È possibile controllare questo in php.ini
sotto la direttiva session_handler
. Controlla http://www.tonymarston.net/php-mysql/session-handler.html per una facile passeggiata (usato prima).
È necessario utilizzare session_set_save_handler
per scrivere funzioni di apertura, chiusura, lettura, scrittura, eliminazione e garbage collection personalizzate.
Vedere il mio codice GitHub frammento di PHP5.4-DB-Session-Handler-Class per un database guidato classe di gestione delle sessioni in PHP 5.4.
- 1. Imposta variabile sessione utilizzando javascript in PHP
- 2. Imposta chiave primaria nel database molto grande
- 3. Imposta la modalità flush della sessione di sospensione in primavera
- 4. muore() termina la sessione in PHP?
- 5. Come posso impostare una sessione nel database codeigniter 3?
- 6. Variabile sessione Unset PHP
- 7. Sessione spoofing (PHP)
- 8. Imposta cookie di sessione per sottodomini specifici
- 9. Mantenere aperta la sessione del database
- 10. Store php datetime nel database mysql
- 11. Imposta la precisione per un numero float in PHP
- 12. php: sessioni vs database
- 13. Symfony2: variabile di sessione globale nel modello di PHP
- 14. Come inserire testo tradotto nel database php
- 15. php risparmio oggetto in sessione
- 16. sessione in PHP in Social Engine
- 17. Ricordando la sessione PHP Navigazione privata
- 18. Codeigniter & PHP verifica se la sessione esiste
- 19. Artisan, la creazione di tabelle nel database
- 20. Sessione PHP veloce ed efficiente
- 21. Problemi di sessione PHP
- 22. Come si imposta la scadenza del cookie su "sessione" in C#?
- 23. Imposta la shell predefinita nel Terminale Cloud9
- 24. PHP: resetta la durata della sessione su ricarica
- 25. Maven: imposta la posizione settings.xml nel pom.xml?
- 26. Imposta connessione database predefinita Rails
- 27. Trasferimento sessione su server in PHP
- 28. Impossibile ripristinare il database, il database è in uso per la sessione
- 29. sessione PHP senza cookie
- 30. Imposta il limite di timeout della sessione in joomla
Puoi darci qualche informazione in più? Che cosa hai intenzione di fare con le sessioni? – 2ndkauboy
Puoi prima cercare su Google. Uno dei primi collegamenti che ti fornirà è questo, ad esempio: http://www.devshed.com/c/a/PHP/Storing-PHP-Sessions-in-a-Database/ – nico
Generalmente sessione memorizzata in file temporanei nel server. Voglio memorizzare la sessione nella tabella del database. – shin