有没有办法让PHP文件有一个到子文件夹的绝对路径,而不是Apache的相对路径,而不使用“../assets/autoload.php”?

pu82cl6c  于 2022-11-16  发布在  Apache
关注(0)|答案(2)|浏览(109)

日安,我正在做一个网站。我想这个网站有一个帐户系统。以下多个教程和自学,我相信我已经用Apache和MySQL做了一个体面的系统。
然而,当链接“assets/private”文件夹中的PHP文件时,它似乎不能在子文件夹中工作。

<?php
session_start();
ini_set("display_errors",0);

require "../private/database.php";
require "../private/functions.php";
?>

下面是每个HTML文件顶部的代码,用于防止那些未登录的用户查看其页面;

<!php
    require '../private/autoload.php';
    $user_data = check_login($connection);
    
    $username = '';
    if(isset($_SESSION['username']))
    {
        $username = $_SESSION['username'];
    }
?>

所有这些都运行得很好!但是正如您所看到的,它可以在一个“文件夹路径”中运行,使用../private/autoload.php。我需要它在多个文件夹中运行,可能是文件夹的文件夹。与其让它相对运行,这似乎不起作用,有没有办法创建一个绝对链接?

require '/websitename/private/autoload.php';
$user_data = check_login($connection);

我试过这个例子,它适用于样式表、JavaScript文件、图像和视频,但由于某种原因,它不适用于PHP文件。
这些路径起作用;

  • /favicon.php-网站首页
  • /websitename/home/changelog.php -修改日志页面

和图书馆路径;

  • /websitename/library/index.php -图书馆网页
  • /list.php-列表页面

但是子文件夹不起作用;

  • /websitename/library/article/index.php -图书馆〉文章页面
  • /countries/index.php-图书馆〉国家/地区页面
  • /countries/countries/index.php-图书馆〉国家/地区〉国家/地区页面
    我如何应用绝对路径来解决子文件夹问题?*或者有其他解决方案吗?我在多个网站上查找过这个问题,似乎没有给予答案。我看到一个模糊的答案, 显然 * .htaccess文件可能需要一个选项设置来告诉**每个文件从哪里获取信息,因为在“默认”情况下,它在一个文件夹路径中,但没有解释应该是哪些设置。

希望这一切都是有意义的!第一篇文章,所以我希望我满足了要求〈3

jaxagkaj

jaxagkaj1#

很难告诉你的项目如何处理你的路线。我建议签入项目文件的路由器文件或一个主控制器,可能会内爆的url和创建一个响应,当它找到控制器。你可以创建一个最终路径变量在您的项目的入口和使用全局在要求文件从任何地方你需要例如:

[index.php]
    define('BASE_DIR', str_replace("\\", "/", dirname(__DIR__)));

    [file.php]
    $path = BASE_DIR.'/public/img/project/'.$file_name;

你也可以检查 composer 项目,它有自动加载,你可以在网上检查。我希望这个答案找到有用的

ql3eal8s

ql3eal8s2#

如何应用绝对路径来解决子文件夹问题?

不像.html、.css、.js、images和video文件,它们的路径在主站点文件夹中,.php文件中php代码的路径取自服务器的源代码。

require "C:/xampp/htdocs/website/database/autoload.php";

感谢您的回答!

相关问题