Как использовать сессию в таблице базы данных с php и mysql?установить сеанс в базе данных в php
ответ
Вы должны создать объект так:
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();
}
}
Затем перед тем session_start инициировать этот класс!
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
Можете ли вы рассказать мне, как я могу использовать этот код для установки сеанса? Есть ли разница с обычной настройкой сеанса? – shin
Басиально, что вы используете $ _SESSION ... Это запросит SessionHandler, что означает, что обработчик сеанса является средним человеком, он обрабатывает данные и возвращает данные. Если вы применяете свой собственный обработчик, вы можете сохранить его так или иначе, как вы хотите, Файл и т. Д. Выполнение этого говорит PHP. Когда вы используете сеанс для запроса этого класса для данных. поскольку вы включаете этот файл и создаете его экземпляр, все остальное, что вы делаете, не изменится, если метод хранения будет DB. Ive обновил мой пост, пожалуйста, просмотрите – RobertPitt
Также этот код является чисто примером, я бы расширил его, чтобы иметь объект хранения, поэтому вы уменьшаете количество вызовов на db, также смотрите на MemCached! – RobertPitt
Вы управляете этим в php.ini
по директиве session_handler
. Отъезд http://www.tonymarston.net/php-mysql/session-handler.html для легкой прогулки (используется раньше).
Вам необходимо использовать session_set_save_handler
, чтобы писать пользовательские функции открытия, закрытия, чтения, записи, уничтожения и сбора мусора.
Смотрите мой GitHub фрагмент кода PHP5.4-DB-Session-Handler-Class для базы данных приводится класса управления сеансом в PHP 5.4.
- 1. Как установить сеанс в базе данных codeigniter 3?
- 2. Выполнение одновременных запросов к базе данных в PHP за сеанс?
- 3. Kohana 3.2 сохранить сеанс в базе данных
- 4. Чтобы сохранить сеанс в базе данных
- 5. Tomcat: хранить сеанс в базе данных
- 6. Настройка CakePHP 2. * сеанс и сеанс кэша в базе данных
- 7. Как установить сеанс тайм-аута в php?
- 8. Установить пароль в базе данных
- 9. PHP YII2 установить сеанс group_concat_max_len
- 10. Установить сеанс php через ajax
- 11. PHP - Установить сеанс внутри функции
- 12. Отклонить логин, если сеанс существует в базе данных
- 13. Сравнение данных в базе данных в PHP
- 14. Не удалось сохранить сеанс в базе данных в laravel 5.2
- 15. Изменена таблица пользователей в базе данных, как обновить сеанс?
- 16. Установить дату в базе данных MYSQL php to Zero
- 17. Где установить сеанс в Codeigniter?
- 18. PHP Timer в базе данных
- 19. Хранение PHP в базе данных
- 20. PHP: Поиск в базе данных
- 21. Поиск в базе данных PHP
- 22. PHP сохранение в базе данных
- 23. Обработка PHP в базе данных
- 24. PHP-сессии в базе данных
- 25. Получение строк в базе данных PHP Php
- 26. Как установить сеанс в jQuery и получить в PHP
- 27. Как установить img src в php-сеанс в jQuery
- 28. Как установить сеанс в php в соответствии с выбранным языком?
- 29. Поиск данных в базе данных. PHP
- 30. Обновление данных, содержащиеся в базе данных PHP
Не могли бы вы дать нам немного больше информации? Что именно вы собираетесь делать с сеансами? – 2ndkauboy
Сначала вы можете выполнить поиск в Google. Одна из первых ссылок, которые она вам предоставит, это, например: http://www.devshed.com/c/a/PHP/Storing-PHP-Sessions-in-a-Database/ – nico
Обычно сеанс сохранен во временных файлах на сервере. Я хочу сохранить сеанс в таблице базы данных. – shin