Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未在css文件中读取PHP会话_Php_Css_Session - Fatal编程技术网

未在css文件中读取PHP会话

未在css文件中读取PHP会话,php,css,session,Php,Css,Session,我有两个文件,一个是一个php文件,其中设置了一个会话,下面包含了源代码。 一个.htaccess文件已就位,以确保css将像php文件一样被解析, 我已经验证了这一点,但是没有会话数据可以从style2.css中读取 index.php: <?php session_start(); $_SESSION['bgimg'] = 'picture.jpg'; ?> <head> <meta charset="utf-8"> <title&

我有两个文件,一个是一个php文件,其中设置了一个会话,下面包含了源代码。 一个.htaccess文件已就位,以确保css将像php文件一样被解析, 我已经验证了这一点,但是没有会话数据可以从style2.css中读取

index.php:

<?php
session_start();
$_SESSION['bgimg'] = 'picture.jpg';
?>

<head>
    <meta charset="utf-8">
    <title>Index</title>
    <link rel="stylesheet" type="text/css" href="style2.css">
</head>
....

指数
....
另一个是style2.css:

<?php
session_start(); 
header("Content-type: text/css; charset: UTF-8");



print_r($_SESSION);

?>

body {
    background: #fff;
    background-image: url("<?php echo $_SESSION['bgimg']; ?>");
}
....

身体{
背景:#fff;
背景图片:url(“”);
}
....
css将像php文件一样被解析

这是个糟糕的主意

而是使用
mod_rewrite
style2.css
重写为PHP脚本

RewriteRule ^style2\.css$ generate_style.php


除此之外,您的会话代码看起来不错,可能PHP只是对
.css
文件感到困惑。

我认为您的会话cookie可能不会与.css请求一起发送,因此无法获取会话。

一般来说,虽然PHP解释器不是最好的方法,但传递css文件。 Css是指带有样式信息的静态缓存数据

由于您似乎希望动态设置一个特定元素的背景图像,我建议在html中使用
style
属性,如下所示:

<body style="background-image:url(<?= /* php code here */ ?>);"></body>
php示例

<!-- snip -->
<body <? if(/* check login here */) { echo 'class="login"'}?> >
<!-- snip -->


你是如何确定“没有会话数据可以从style2.css中读取”的?你真的混合了PHP和CSI吗?我认为你最好只修改带有样式属性的body标记。我认为不可能在样式表中读取会话。那么我将在de header中使用标记,但我认为这会起作用,因为一些网站在其.html文档中使用.php的方式与此相同。遗憾的是,我的主人不允许重写mod_,否则这也是我的第一选择。那就是。。很奇怪。我想我以前从未见过这种情况。不允许重写规则,但允许AddType?这太疯狂了。你也可以直接链接到main.css.php或其他东西。