【问题标题】:CSS property customization via PHP sessions?通过 PHP 会话自定义 CSS 属性?
【发布时间】:2011-12-16 20:50:26
【问题描述】:

我是 PHP 的新手,我目前正在技术学校上课。话虽如此,我们的一项任务要求我们使用会话来修改 4 个 CSS 属性。正文背景颜色、a:link 颜色、a:hover 颜色和 h1 颜色。这个想法基本上是有 3 个页面 -1 是一个表单,有 4 个下拉菜单,填充颜色,一个使用 $_POST 数据设置实际会话,最后一个是实际使用 CSS 的页面。

我让它与 cookie 一起使用,但任务明确表示要使用会话,如您所见:

我设置会话的当前代码是:

session_start();
$_SESSION['bgColor']= $_POST['bgColor'];
$_SESSION['lColor']=$_POST['lColor'];
$_SESSION['hoverColor']=$_POST['hoverColor'];
$_SESSION['h1Color']=$_POST['h1Color'];

在同一页面上,有一段代码可以回显会话变量的值...我可以看到正在保存的颜色。但是,当我尝试像这样呼应 CSS 时:

 echo "a:link {color: ".$_SESSION['lColor'].";}";
 echo "a:hover {color: ".$_SESSION['hoverColor'].";}";
 echo "body {background-color: ".$_SESSION['bgColor'].";}";
 echo "h1 {color: ".$_SESSION['h1Color']."; text-align:center;}";

它不起作用,当我通过网络浏览器检查页面源时,它显示空白属性:

 a:link {color: ;}a:hover {color: ;}body {background-color: ;}h1 {color: ; text-align:center;}     

我非常感谢你们愿意提供的任何帮助,请记住,这是我在 PHP 中的第一堂课。

【问题讨论】:

  • 确保所有页面上都有 session_start
  • 你可以accept helpful answers。不要将已解决的 Dsiclaimer 编辑为文本。

标签: php css session properties customization


【解决方案1】:

您是否确保使用 session_start() 启动每个使用会话的页面;

它必须在尝试调用任何会话变量之前声明。

你的表单是使用method="post"而不是get吗?

另外,很多 SO 人可能会警告您,确保清理从 $_POST 获得的所有内容。在这种情况下,您可能是安全的,因为它只是一个任务,而不是一个实时站点 - 我假设。

【讨论】:

  • 哇。我不知道我必须有 session_start();在所有使用会话的页面上。它现在工作,谢谢!解决方案就是 session_start();。
【解决方案2】:

在 File3 中添加session_start()

确保PHPSESSID(或任何您调用的会话变量)正在通过 GET 从 File2 传输到 File3,以防用户禁用 cookie。

【讨论】:

  • 谢谢! session_start() 是问题所在,我不敢相信解决方案这么简单。你们是救生员!
猜你喜欢
  • 1970-01-01
  • 2016-07-05
  • 1970-01-01
  • 2012-10-27
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
相关资源
最近更新 更多