使用 PHP 变量时找不到文件

Files not found when using PHP variables

你好(英语不是我的母语所以请原谅我的任何错误),

我正在做一个额外的学校项目,该项目的目标是设计和编写一个论坛网站。我正在为这个项目使用 HTML、CSS、JavaScript 和 PHP。我对最后两个很陌生。我使用 JavaScript 来检查密码是否满足所有要求。大写字母、数字等。PHP 用于从 MySql 数据库和变量中的表单导入数据。

我目前正在处理主页和注册页面。我在 YouTube 视频的帮助下完成了孔登记过程。我现在正在尝试制作一些 "template div's",因此当我有例如 10 页并且更改网站标题时,我不必打开每个文件来更改它。我目前正在使用 php define 来创建一个变量(我认为)并且该变量被放置在每个页面中。我目前在索引页面中使用它,但是当我转到注册页面时,每个图像和指向其他页面的链接都不起作用。问题是它在注册页面所在的文件夹内搜索图像或文件。但是图像在 Root/CSS/Images/Registration 文件夹中而不是在 Root/Registration/CSS/Images/Registration.

简而言之, 有没有一种方法可以在不使用绝对 url 的情况下从每个页面定位文件?

我尝试了以下方法: 在路径前使用../,但返回索引文件时不起作用。

例如使用绝对 url。 D/OneDrive/Documents/School/Website/Host/CSS/Images/.这仅在网站位于此路径时有效。但是当我把它移到一个实际的服务器上时,这显然是行不通的,因为路径是错误的。

索引文件:

<?php
require_once('PHP/config.php');
?>

<html>
<head>
    <meta charset="UTF-8">
    <title><?php echo  title; ?></title>
    <link rel="icon" href="CSS/Images/icon.png">
    <link rel="stylesheet" href='CSS/style.css'>
</head>
<body>
    <?php echo  header; ?>
</body>

<footer class="footer"><?php echo  footer; ?></footer>
</html>

config/varible 文件:

<?php
define('title','Martijns Forum');
define('footer', '*All the footer code*');
define('header', '
    <div class="banner">
        <img src="CSS/Images/banner.jpg">
        *All the other banner code*
    </div>'
?>

我预计会出现 404 错误,因为我不知道如何处理这个问题。

如果您使用绝对 URL`s,则需要在服务器上部署页面时更改 URL。 绝对 URL 应该这样使用:

<?php echo SERVER_URL.'/CSS/Images/icon.png'; ?>

您必须将 SERVER URL 更改为您的服务器 IP 地址或域名。

<?php
   define('SERVER_URL', 'http://8.8.8.8');
?>

尝试再创建一个常量。在下面的例子中,我将使用 INCLUDE_PATH 作为常量。并在其中设置页面文档所在文件夹的默认完整 URL,在这种情况下,我将以 https://mydomain/

为例
    <?php
    define('INCLUDE_PATH','https://mydomain/');
    define('title','Martijns Forum');
    define('footer', '*All the footer code*');
    define('header', '
     <div class="banner">
        <img src="CSS/Images/banner.jpg">
        *All the other banner code*
     </div>');
    ?>

现在使用 echo 函数并在所有页面请求上调用 include_path 常量,在本例中是在 css 的开头。它看起来像这样:


<?php
require_once('PHP/config.php');
?>

<html>
<head>
    <meta charset="UTF-8">
    <title><?php echo  title; ?></title>
    <link rel="icon" href="<?php INCLUDE_PATH; ?>CSS/Images/icon.png">
    <link rel="stylesheet" href="<?php INCLUDE_PATH; ?>CSS/style.css">
</head>
<body>
    <?php echo  header; ?>
</body>

<footer class="footer"><?php echo  footer; ?></footer>
</html>