¿Cómo puedo usar la sesión en la tabla de la base de datos con php y mysql?establecer la sesión en la base de datos en php
Respuesta
Usted tendría que crear un objeto de esta manera:
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();
}
}
Entonces, antes de session_start iniciado esta clase!
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
¿Puede decirme cómo puedo usar este código para configurar sesión? ¿Hay alguna diferencia con la configuración de sesión normal? – shin
Básicamente, si usa $ _SESSION ... Esto consultará el SessionHandler, lo que significa que el manejador de sesión es el intermediario, almacena datos y devuelve datos. Si aplica su propio manejador, puede almacenarlo de la manera que desee, DB, Archivo, etc. Ejecutar esto le dirá a PHP que cuando usa la sesión para consultar esta clase para los datos. Siempre que incluya este archivo y cree una instancia de él, todo lo demás que haga no cambiará. El método de almacenamiento será DB. He actualizado mi publicación, por favor revise – RobertPitt
También este código es un ejemplo, lo extendería para tener un objeto de almacenamiento para que reduzca las llamadas a db, ¡también mire a MemCached! – RobertPitt
Usted controla esto en php.ini
según la directiva session_handler
. Consulte http://www.tonymarston.net/php-mysql/session-handler.html para un recorrido fácil (lo usó antes).
Tendrá que usar session_set_save_handler
para escribir funciones personalizadas de abrir, cerrar, leer, escribir, destruir y recoger basura.
Ver mi código github fragmento PHP5.4-DB-Session-Handler-Class para una clase de gestión de sesiones conducido base de datos en PHP 5.4.
- 1. Ocultar la información de inicio de sesión de la base de datos en código PHP
- 2. PHP - Almacenamiento de sesión en una base de datos
- 3. Tomcat: Almacenar sesión en la base de datos
- 4. Insertar datos en la base de datos Oracle utilizando php
- 5. Establecer la base de datos actual en MySQL script
- 6. ¿Tamaño ideal de la sesión de PHP?
- 7. PHP - ¿Almacenar imágenes en datos de SESIÓN?
- 8. Inicie sesión en un archivo mediante PHP o inicie sesión en la base de datos MySQL, ¿qué es más rápido?
- 9. PHP - Almacenamiento de texto en la base de datos MySQL
- 10. Sesiones de PHP en la base de datos
- 11. Almacenamiento de variables de usuario en la base de datos frente a la sesión en asp.net
- 12. Tienda IPv6 en la base de datos
- 13. Almacenar en Datos de Sesión vs almacenar en Base de Datos Sql para datos temporales
- 14. Diferencia entre la sesión en el archivo y en la base de datos
- 15. Establecer max_execution_time en la CLI de PHP
- 16. No se puede restaurar la base de datos, la base de datos está siendo utilizada por la sesión
- 17. Establecer variable de sesión utilizando javascript en PHP
- 18. Rieles: ¿Ventajas de almacenar la sesión en la base de datos?
- 19. Error al destruir la sesión en PHP
- 20. Problemas de la sesión PHP
- 21. php: sesiones vs. base de datos
- 22. Estructura de la base de datos para la implementación de inicio de sesión social?
- 23. Iniciar sesión en la base de datos en lugar de archivos de registro
- 24. Codeigniter Base de datos de sesión
- 25. Sobrecarga de sesión: ¿qué es "demasiados datos" almacenados en una sesión en PHP?
- 26. Datos de sesión PHP no guardados
- 27. datos unserialize de PHP en la pitón
- 28. Destruir la sesión de PHP en la página, dejando
- 29. Cómo proteger contraseñas de base de datos en PHP?
- 30. ¿Cómo establecer la variable de sesión en jquery?
¿Puede darnos un poco más de información? ¿Qué vas a hacer exactamente con las sesiones? – 2ndkauboy
Es posible que desee buscar primero en Google. Uno de los primeros enlaces que le proporcionará es este, por ejemplo: http://www.devshed.com/c/a/PHP/Storing-PHP-Sessions-in-a-Database/ – nico
Por lo general, la sesión se almacena en archivos temporales en el servidor. Quiero almacenar la sesión en la tabla de la base de datos. – shin