2

背景:我使用 XAMPP(PHP 版本 7.0.29)和无头 CMS Directus。

我想要实现的目标:我想创建一个基于 PHPSESSID 的登录。作为登录用户,您可以访问数据库中的数据。

目前发生的情况:我可以登录并从数据库中读出数据。但是在我的 xampp 的 /tmp 文件夹中,我看到,每当执行数据库查询时,都会添加一个新的 PHPSESSID 文件。

预期行为:创建数据库查询时,不应创建新的 PHPSESSID 文件。

我的想法:由于我使用 Directus 并且 PHP SDK 位于我的 PHP 文件的子文件夹中,我可以想象 PHP 位置会混淆并设置一个新的会话。或者 Directus 需要一个新的 SESSION 来进行数据库查询。我不确定,所以这里是线程。

以下是我的文件中最重要的摘录。请记住,我的前端位于 localhost/html,directus SDK 位于 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 stackoverflow example
  ]
]);

当我删除 $userProcessor PHP 不会在 /tmp 中创建一个新的 PHPSESSID 文件。显然,第二个 PHPSESSID 来自 Directus 的数据库查询。

4

0 回答 0