【发布时间】:2014-05-01 16:25:36
【问题描述】:
我确信这只是我忽略的事情,但我正在努力解决它。
我有两个简单的 php 页面:
sesh1.php
<?php
session_start();
echo session_id();
//create array
$survey = array(
'question 1' => array('horse', 'cow','pig'),
'question 2' => 12,
'question 3' => 'Man',
'question 4' => 'Woman'
);
//add the array to the session
$_SESSION[]=serialize($survey);
//show session contents
print_r($_SESSION);
结果:
c10a65902644c193496fc0292f4c13b1
数组 ( [0] => a:4:{s:10:"问题 1";a:3:{i:0;s:5:"马";i:1;s:3:"牛"; i:2;s:3:"猪";}s:10:"问题 2";i:12;s:10:"问题 3";s:3:"人";s:10:"问题 4 ";s:5:"女人";})
sesh2.php
<?php
session_start();
echo session_id();
//show the session
print_r($_SESSION);
结果:
c10a65902644c193496fc0292f4c13b1
数组 ( )
当我从 sesh1 导航到 sesh2 时,我无法弄清楚为什么会返回一个空白数组。如您所见,会话 ID 被保留了,那么为什么不保留会话内容呢?我所有的 php.ini 设置似乎都是工作会话所期望的。
谁能告诉我缺少什么?
【问题讨论】:
-
为什么要序列化数据? PHP 会为您做到这一点。
-
我只是同时尝试了两件事——序列化函数和会话。删除它并不能解决问题。
-
注意:未知:在第 0 行的 Unknown 中跳过数字键 0,您必须使用键 $_SESSION['survey'] = array();
-
$_SESSION是一个关联数组
标签: php session session-state