【问题标题】:PHP load CSS based on $_SERVER['HTTP_HOST'] fails in Chrome基于 $_SERVER['HTTP_HOST'] 的 PHP 加载 CSS 在 Chrome 中失败
【发布时间】:2012-02-01 23:52:21
【问题描述】:

我正在尝试从基于 PHP $_SERVER['HTTP_HOST'] 生成的动态文件名的目录中加载 CSS 文件。查询 $_SERVER['HTTP_HOST'] 的想法并匹配到客户端 ID。该 ID 用于 CSS 文件名,即 html 头部中的“1.css”或“5.css”,具体取决于客户端 ID。

此方法似乎在 Safari 和 Firefox 中有效,但只是在我的 Mac 上的 google chrome 中加载“.css”。

由于 PHP 是服务器端,我只能假设它是 $_SERVER['HTTP_HOST'],它没有通过 Chrome 获取。

两个问题。为什么?而且 - 由于这是一个严重的问题 - 我有哪些替代方法来动态编写 .css 文件名?

谢谢!

// Set client ID for session
$id_client_sql = "SELECT id FROM client WHERE url='".$_SERVER['HTTP_HOST']."'";
$id_client_res =  mysqli_query($dbConnect, $id_client_sql) or die(mysqli_error($dbConnect));

$client = mysqli_fetch_array($id_client_res);
$id_client = $client['id_client'];

然后-

$display_block .= '<link  rel="stylesheet" href="'.$id_client.'.css">'; //etc...

【问题讨论】:

  • 请发布您正在使用的代码。我想不出任何原因 HTTP_HOST 不会被填充。
  • @Michael 除非出于某种奇怪的原因,HTTP/1.0 客户端...
  • 您的选择可能有问题,而不是 HTTP_HOST。
  • @Tom var_dump($_SERVER['HTTP_HOST']); 在 Chrome 下显示什么?
  • 请转义查询中直接使用的每一条外国数据——包括$_SERVER['HTTP_HOST']。当原始$_SERVER['HTTP_HOST'] 变量不起作用时,你能显示它的值吗?

标签: php google-chrome


【解决方案1】:

在 Chrome 中改用 $_SERVER['SERVER_NAME']。我知道这个问题已经解决了,但是我在 Chrome 中遇到了一个空白的 HTTP_HOST 并尝试使用 SERVER_NAME 来修复它。

【讨论】:

  • 谢谢@Marvin。在我做出改变之前,看看我是否还有其他问题。目前该代码无法识别浏览器——我更愿意尝试为所有人维护一个通用的解决方案。 (强硬!)
  • 我所做的是检查HTTP_HOST 是否为空。如果是这样,那么我使用SERVER_NAME
猜你喜欢
  • 2010-10-21
  • 2023-04-04
  • 2011-02-17
  • 2016-12-22
  • 2018-05-23
  • 2014-10-09
  • 2015-08-09
  • 2011-11-05
  • 2018-04-17
相关资源
最近更新 更多