Новый PHPSESSID создается при вызове запроса к базе данных (с использованием Directus)
Контекст: я использую XAMPP (с версией PHP 7.0.29) и безголовый CMS Directus.
Чего я хочу добиться: я хочу создать единый логин на основе PHPSESSID. Как зарегистрированный пользователь, у вас есть возможность доступа к данным в базе данных.
Что происходит в данный момент: я могу войти в систему, а также считывать данные из базы данных. Но в моей папке / tmp xampp я вижу, что всякий раз, когда выполняется запрос к базе данных, добавляется новый файл PHPSESSID.
Ожидаемое поведение: при создании запроса к базе данных новый файл PHPSESSID создавать не следует.
Что я думаю: так как я использую Directus, а PHP SDK находится в подпапке моих файлов PHP, я мог бы предположить, что местоположение PHP перепутано и устанавливает новую сессию. Или что Directus нуждается в новой СЕССИИ для запроса к базе данных. Я не уверен, так что это нить.
Вот самые важные выдержки из моих файлов. И имейте в виду, что мой Frontend находится в localhost/ html, а SDK Directus находится в localhost/ directus-build.
login.php (интерфейс)
<?php session_start(); ?>
[...Login From...]
<script>
$("#login").submit(function(e){
e.preventDefault();
var email = $('#email').val(),
password = $('#password').val();
$.ajax({
type: "POST",
url: "querys/login.php",
dataType: 'json',
cache: false,
data: {
email: email,
password: password
}
});
});
</script>
querys / login.php (логика)
<?php
session_start();
require '../vendor/autoload.php'; // Needed by Directus
$loginProcessor = \Directus\SDK\ClientFactory::create('TOKEN', [
'base_url' => 'http://localhost/directus-build/',
'version' => '1.1'
]);
// Check if email is in database
$userProcessor = $loginProcessor->getItems('users', [
'filters' => [
'email' => $_POST['email'] //i use POST here only for stackru example
]
]);
Когда я удаляю $userProcessor, PHP не создает новый файл PHPSESSID в / tmp. Очевидно, что второй PHPSESSID поступает через запрос к базе данных от Directus.