0

我对 PHP 相当陌生,我已经开始从事一个小项目。我希望我的代码有条理,所以我决定将文件container.phtml 包含在我的index.php文件中。因此,当 $page = 'login' 时,它将包含login.css和 login.phtml 文件。我希望login.css应用于login.phtml。相反,当我运行程序时login.css不会在控制台中加载或产生任何错误消息。login.css文件是否仅适用于container.phtml?在保持我想要的工作方式的同时,我可以做些什么不同的事情?

编辑: $page 变量告诉 index.php 它应该包含什么文件。示例:$page = '登录'; 这告诉它获取 login.phtml 文件。然后,在 container.phtml 中,它会检查 $page = 'login' 是否包含 login.css

索引.php

<?php

if(!isset($_GET['page'])){
    $page = 'home';
}else{
     $page = $_GET['page'];
}

/* Fetch needed files. */
require_once 'app/paths.php';
require_once THEME_LAYOUT_PATH . 'container.phtml';

$pages = array(
'home',
'login',
'register'
);

$layoutPath = 'themes/neutron/layout/' . $page . '/' . $page . '.phtml';

if(in_array($page, $pages)){
    require $layoutPath;
}else{
    require 'themes/neutron/layout/404/404.phtml';
}
?>

容器.phtml

<html>
<title>Neutron</title>
<link rel = "stylesheet" type = "text/css" href = "<?php ASSETS_PATH . 'css/bootstrap.min.css' ?>">
<link rel = "stylesheet" type = "text/css" href = "<?php ASSETS_PATH . 'js/bootstrap.min.js' ?>">
<link rel = "stylesheet" type = "text/css" href = "<?php ASSETS_PATH . 'js/jquery.min.js' ?>">
<?php 
/* Include header, footer, etc */
require_once THEME_LAYOUT_PATH . 'partials/header.php';
require_once THEME_LAYOUT_PATH . 'partials/footer.php';
?>
<?php if($page == 'login'){ ?>
<link rel = "stylesheet" type = "text/css" href = "<?php ASSETS_PATH . 'css/login.css' ?>">
<?php } ?>


</html>

登录.phtml

<div class="login-clean" style="background-color: rgb(255,255,255);">
    <form method="post">
        <h2 class="sr-only">Login Form</h2>
        <div class="illustration"><i class="icon ion-ios-navigate" style="color: #4777f4;"></i></div>
         <div class="form-group"><input class="border rounded form-control" type="email" name="email" placeholder="Username"></div>
         <div class="form-group"><input class="border rounded form-control" type="password" name="password" placeholder="Password"></div>
        <div class="form-group"><button class="btn btn-primary btn-block border rounded" type="submit" style="background-color: #4777f4;">Log In</button></div><a class="forgot" href="#">Forgot Password?</a></form>
</div>
4

3 回答 3

0

您可以使用 switch 语句对某些值进行操作

switch($page) {
   case 'login':
      include 'LOGIN-FILE';
      break;
   default:
      include 'index.php';
      break;
}
于 2020-07-31T07:25:54.907 回答
0
$page = basename($_SERVER['PHP_SELF']); // Current page file name.

这会将当前页面文件名返回给变量$page,例如index.php,login.phtml等。

将此与if语句结合使用,这样您就可以定义导入哪些样式表。

if ($page == "index.php")
{
    echo '<link rel="stylesheet" type="text/css" href="css/style.css" />';
}
else
{
    echo '<link rel="stylesheet" type="text/css" href="css/style.css" />';
}
于 2020-07-31T00:25:47.440 回答
-1

ASSETS_PATH 中有什么?在我看来,您的错误可能是 ASSETS_PATH 不是网址?

login.css 文件是否仅适用于 container.phtml?

任何加载的 css 都将应用于整个 html。

于 2020-07-31T01:33:12.070 回答