【问题标题】:Files not found when using PHP variables使用 PHP 变量时找不到文件
【发布时间】:2020-01-28 02:44:49
【问题描述】:

您好(英语不是我的母语,如有错误请见谅),

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

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

总之, 有没有办法在不使用绝对 url 的情况下从每个页面定位文件?

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

例如使用绝对网址。 D/OneDrive/文档/学校/网站/主机/CSS/图像/。这仅在网站位于此路径中时有效。但是当我将它移动到一个实际的服务器时,这显然不起作用,因为路径错误。

索引文件:

<?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>

配置/变量文件:

<?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 错误,因为我不知道如何处理此问题。

【问题讨论】:

    标签: php html css http-status-code-404


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      尝试再创建一个常量。在下面的情况下,我将使用 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-05
        • 1970-01-01
        相关资源
        最近更新 更多