【发布时间】:2011-03-30 01:17:58
【问题描述】:
PHP 本身有我见过的最奇怪的问题。
设置:
IIS 下的 PHP 5.33(也试过 PHP 5.2.14)
问题: 一旦我将感叹号放入会话数组中的键中,PHP 就会删除所有会话数据。
示例:
session1.php
session_start();
$_SESSION["foo"] = 'test';
header('Location: session2.php');
session2.php
session_start();
var_dump($_SESSION);
die();
工作正常,我看到打印出可变数据。
array(1) { ["foo"]=> &string(4) "test" }
但是如果我将第一个文件中的行更改为
$_SESSION["foo!"] = 'test';
或
$_SESSION["f!oo"] = 'test';
我的意思是如果我添加感叹号 - 那么当我到达第二个文件时 $_SESSION 数组是空的
array(0) { }
当我在 5.2.14 上时,我认为这是一个错误的 PHP 版本,但升级没有帮助。 我什至不知道问题可能是什么。也许这与 Windows 设置或 IIS 有关?
有什么想法吗?
【问题讨论】:
-
您使用的是什么会话后端?普通文件?
session.save_handler=files -
我的 php 5.3.1 与 "!" 配合得很好(xampp)。
-
有一个旧的错误报告,但显然它无法重现 (bugs.php.net/bug.php?id=14160)