【问题标题】:Missing PHP Session in .html file.html 文件中缺少 PHP 会话
【发布时间】:2013-06-15 16:55:44
【问题描述】:

我正在尝试将网上商店迁移到新的网络服务器。它在旧的 Web 服务器上工作得很好,但是,当我尝试登录 Webshop (index.html) 时,它返回到主页,因为会话变量为空而没有登录。 然后我注意到,当我打开另一个名为 request.php 的站点时,会话变量已设置并且我已登录。 所以我尝试了几件事,我将 index.html 重命名为 index.php 并且会话就在那里。

我现在的问题是:我也可以在 .html 文件中获取 Session(就像在以前的 Web 服务器上一样)还是我必须重命名我的所有 .html 文件?

注意:index.html文件也包含php代码,解析为php,只是session变量为空。

提前感谢您的每一个回答!

【问题讨论】:

  • 似乎旧服务器上的 html 文件也被配置为 php 可执行文件。

标签: php html session webserver


【解决方案1】:

如果您使用的是 Apache 服务器,请尝试将其添加到配置文件中。

AddType application/x-httpd-php .html

【讨论】:

  • 使用 html 文件来运行任何类型的服务器端脚本并不是最好的主意。如果可以的话,你应该用 php 将 html 文件重命名为 php,当你需要编辑它们时,它也不会那么混乱,因为大多数编辑器不会在 html 文件中对 php 进行颜色编码。
  • 好的,所以我将重命名我的 index.html 并更改指向该文件的所有链接。我仍然想知道为什么会话变量是空的,因为 php 的解析方式与 .php 文件中的相同。
  • 由于没有其他答案,我将把它标记为已解决,尽管我现在不知道它与 .php 结尾一起工作的原因。
【解决方案2】:

AddType application/x-httpd-php .html

在您的 .htaccess 文件中将完成这项工作,但我仍然认为这样做是相当不安全 :)

【讨论】:

  • 那没有成功,也许我不清楚,.html 文件包含被解析的 php 代码。只是包含会话的变量是空的。
  • 你没有忘记那个 .html 文件中的 session_start() 吗?
  • 不,index.html 和 request.php 都包含另一个 .php 文件,该文件执行会话初始化 (session_start() )。如果缺少它,它无论如何都不会在旧的网络服务器上工作。
【解决方案3】:

这些文件需要重命名为具有 .php 扩展名,即使它们包含 html。 只需在 html 开始之前包含您的 php 代码,如下所示:

<?php
 //code goes here
?>

<html>
  <body>
    //etc...

这样,您可以加载会话变量和您需要的任何其他 PHP 变量,然后它们也可以在 html 中访问。

如果您有多个页面需要相同的东西(会话变量),您可以将会话代码放入 php 文件中,例如“session.php”。 然后,在要从 html 转换为 php 的每个页面的顶部,将这段代码放在顶部:

<?php
  require_once("session.php");
?>

现在您的所有页面都可以访问相同的信息,这也有助于减少代码。

【讨论】:

  • 在 html 开始之前包含 php 代码正是我的 index.html 文件正在做的事情。唯一的区别是文件的结尾(index.html、index.php)
【解决方案4】:

您需要在您的网络服务器中设置一个处理程序来将html 文件视为php 文件。

【讨论】:

  • 我猜这是Droa的回答,index.html中的php代码解析成功。
猜你喜欢
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-31
  • 2021-10-23
  • 2012-04-07
相关资源
最近更新 更多