PHP会话不保存?

时间:2014-06-03 05:50:06

标签: php session

我的PHP会话变量似乎没有保存页面到页面。

第1页:

session_start();
$_SESSION['1'] = 'set';
var_dump($_SESSION);

退货:

  

array(1){[1] => string(3)" set" }

好的,所以设置了会话变量。现在,如果我转到......

第2页:

session_start();
if ($_SESSION['1'] == 'set'){
echo "set";
}
elseif($_SESSION['1'] !== 'set'){
echo "Not set";
}
else die("error");
echo "<br />";
var_dump($_SESSION);

退货:

  

未设置

     

array(0){}

我的会话变量的所有想法???

非常感谢。

2 个答案:

答案 0 :(得分:3)

关于数组键,来自http://php.net/manual/en/language.types.array.php,&#34;包含有效整数的字符串将转换为整数类型&#34;。

$ _SESSION上的手册说&#34;一个关联数组&#34;。因此,字面意思是一个关联数组...?如果关于访问和存储会话数据的这些重要信息仍然隐藏在手动注释中,那就没有任何好处。

具有单个数字的会话变量将不起作用,但是&#34; 1a&#34;将会工作,并且#34; a1&#34;甚至只是一个字母,例如&#34; a&#34;也会有用。

(无效的) 第1页

<?php
session_start();
$_SESSION["1"] = "LOGGED";
?>

第二页

<?php
session_start();
echo $_SESSION["1"];
?>

(有效) 第1页

<?php
session_start();
$_SESSION["a"] = "LOGGED";
?>

第二页

<?php
session_start();
echo $_SESSION["a"];
?>

(有效) 第1页

<?php
session_start();
$_SESSION["a1"] = "LOGGED";
?>

第二页

<?php
session_start();
echo $_SESSION["a1"];
?>

PHP.net手册关于会话变量的例子

<?php
$_SESSION[1][1] = 'cake'; // fails

$_SESSION['v1'][2] = 'cake'; // works
?>

来源:http://php.net/manual/en/language.types.array.php

答案 1 :(得分:1)

 use
 replace 
 $_SESSION['1'] = 'set';   

 to
 $_SESSION['abc'] = 'set';