【发布时间】:2012-12-27 09:19:47
【问题描述】:
我在从 HTML 页面访问 php SESSION 数据时遇到了一个奇怪的问题。我有一个基本的 login.php,我将其重定向到“page1.html”。现在我已经这样配置了 .htaccess:
AddType application/x-httpd-php5 .html .htm
另外,我知道我的 php 代码可以在任何给定的 HTML 页面上运行。
但是,如果我说:
session_start();
....
if(!isset($_SESSION['username'])){
header ("Location: http://blahblahblah/Login.html");
}
在 page1.html 的正文中,if 语句总是触发(实际上是 var_dump($_SESSION) yields "array(0) { }")。
但是,如果我采用相同的代码,将其放在“page1.php”中,一切都会按预期工作(以及 var_dump($_SESSION) gives proper values).
那么,是否不能像将扩展名重命名为 '.php' 一样从 HTML 页面访问 $_SESSION?或者我在这里做错了什么?我宁愿将我的大部分页面保留为'.html',而不是'.php,',因为返回并更改所有文件扩展名等会带来不便。
非常感谢,
【问题讨论】:
-
在尝试访问
$_SESSION之前,您是否致电session_start()? -
你试过
session_start()inpage1.html吗? -
您不应保留所有
PHP和HTML扩展名。当您可以轻松隐藏所有扩展或只是为 php 脚本添加另一个重写规则时,为什么需要它!? -
@alfasin 这是错误的。他说他强迫 Apache 解释带有
html扩展名的php脚本 -
它甚至可以解释任何带有随机扩展名的 PHP 脚本,例如
.pl、.rb、.py、.jsp,甚至是.do
标签: php html .htaccess session session-variables