PHP 模块:如何 "connect" 文件用于 AJAX 请求

PHP modules: how to "connect" files for AJAX requests

假设我有这样的文件结构

/
index.php                   // holds db connection, login information, ...
...
/someSubSite
    content_someSite.html   // basic structure, texts, forms, ...
    styles_someSite.css     // styling of content_someSite.html
    backend_someSite.php    // should send answers of AJAX requests
    frontend_someSite.js    // sends AJAX requests
                            // (when a form is submitted)
    ...

index.php中的数据库连接是通过PDO实现的。所以,很明显,我不能直接在 backend_someSite.php 中使用这个 db-object,因为它是在 index.php[=32= 中声明和初始化的] -> 两个不同的范围,这些文件之间没有交互。

所以我现在的问题是:解决这个问题的最佳方法是什么?

我应该为每个子站点的每个 php 文件创建一个 PDO 吗? 并通过 PHP Session?

共享 index.php 收集的登录信息

基本上问题是:在 index.php[=44 之间共享信息甚至整个 PDO 和其他对象的最佳方式是什么=](sub)Site.php 当前端通过 AJAX 查询子站点时。

不清楚 index.php 中还有什么。如果字面意思和你描述的一样,你可以在 backend_someSite.php.

include

如果它有其他东西,例如输出到浏览器的任何东西,那么你应该制作一个只包含连接信息之类的文件(我建议称它为 config.php),然后包括这个文件(在 index.php 和 backend_someSite.php 中)

也许您可以尝试将带有连接信息的代码放在一个单独的文件中,将其命名为 connection.php

<?php

try {
    $connection = new PDO('db_driver:host=myhost;dbname=db_name', 'username', 'password');
} catch (PDOException $e) {
    die(print ("Error!: " . $e->getMessage()));
}
?>

这只是一个例子。然后你可以 include 每隔 .php 需要连接到数据库的文件并在那里使用 $connection 变量。

如果您想在不重复代码的情况下在脚本之间共享会话信息,您可以对会话检查执行相同的操作。

一切由你决定