基于数据库的PHP动态CSS

Tig*_*Tig 4 css php mysql dynamic

在StackOverflow上找到了几个答案并将它们用作我的模型,但我必须遗漏一些东西.我正在尝试根据我的数据库中的动态在CSS中动态设置几种背景颜色,但是它不起作用 - 当我在Chrome中检查Inspect Element时,背景颜色有一条直线和一个警告标记'无效适当的价值'.

这是我的代码; 它位于两个单独的文件中 - 第一个位于标题包含文件中,第二个位于链接的.php/css-esque文件中.

标题包括:[编辑4/29以包含会话代码]

session_start();
// check if $_SESSION was set before
if (!isset($_SESSION['email'])) {
header("Location: bad_login.php");
exit();
}

$_SESSION['companyid'] = $_POST['companyid'];
$companyID = $_SESSION['companyid'];
$email = $_SESSION['email'];

require_once('../includes/_connection.inc.php'); 
$connect = dbConnect('read');
$sql = 'SELECT colorone, colortwo, logo
        FROM companies
        WHERE companyid = ' . $companyID;
$result = $connect->query($sql) or die(mysqli_error());
$row = $result->fetch_assoc();
$colorOne = '#' . $row['colorone'];
$colorTwo = '#' . $row['colortwo'];
$carrierLogo = '/companylogos/' . $row['logo'];
Run Code Online (Sandbox Code Playgroud)

PHP/CSS文件:

<?php header("Content-type: text/css"); 

?>

#main {
    width: 85%;
    margin: 0 auto;
    padding: 0.75em 0;
}

#colorOne {
    width: 100%;
    height: 12px;
    background-color: <?php echo $colorOne; ?>;
}

#colorTwo {
    width: 100%;
    height: 7px;
    background-color: <?php echo $colorTwo; ?>;
}
Run Code Online (Sandbox Code Playgroud)

编辑4/29:

这是生成的CSS:

#main {
    width: 85%;
    margin: 0 auto;
    padding: 0.75em 0;
}

#colorOne {
    width: 100%;
    height: 12px;
    background-color: ;
}

#colorTwo {
    width: 100%;
    height: 7px;
    background-color: ;
}
Run Code Online (Sandbox Code Playgroud)

我也回复了html中的变量,所以我知道变量中应该有一些东西.我应该打开数据库并在css.php文件中分配变量吗?

CSS/PHP在头文件中以这种方式链接:

<link type="text/css" rel="stylesheet" href="../css/carrier.php">
Run Code Online (Sandbox Code Playgroud)

We *_*lio 6

而不是使用.css文件扩展名,请使用.php

在html文件中:是否链接到.php?

<link rel='stylesheet' type='text/css' href='css/style.php' />
Run Code Online (Sandbox Code Playgroud)

在style.php中添加

<?php
    header("Content-type: text/css; charset: UTF-8");
?>
Run Code Online (Sandbox Code Playgroud)

现在,您可以根据自己的喜好设置变量:

资源

编辑:

不要忘记,session_start();因为你正在使用会话(我不明白如何,因为没有任何内容发布到css/carrier.php你应该在会话中从一个不同的文件,然后只是使用它$companyID = $_SESSION['companyid']; $email = $_SESSION['email'];).

这是你的代码看起来的方式?

        <?php
    session_start();
        header("Content-type: text/css; charset: UTF-8");
    $_SESSION['companyid'] = $_POST['companyid'];
    $companyID = $_SESSION['companyid'];
    $email = $_SESSION['email'];

    require_once('../includes/_connection.inc.php'); 
    $connect = dbConnect('read');
    $sql = 'SELECT colorone, colortwo, logo
            FROM companies
            WHERE companyid = ' . $companyID;
    $result = $connect->query($sql) or die(mysqli_error());
    $row = $result->fetch_assoc();
    $colorOne = '#' . $row['colorone'];
    $colorTwo = '#' . $row['colortwo'];
    $carrierLogo = '/companylogos/' . $row['logo'];
    ?>

#main {
    width: 85%;
    margin: 0 auto;
    padding: 0.75em 0;
}

#colorOne {
    width: 100%;
    height: 12px;
    background-color: <?php echo $colorOne; ?>;
}

#colorTwo {
    width: 100%;
    height: 7px;
    background-color: <?php echo $colorTwo; ?>;
}
Run Code Online (Sandbox Code Playgroud)