doushao6874 2015-02-26 06:16
浏览 23

PHP:在函数内分配的会话变量

I have some problem understanding the behaviour of these scripts. What I want to do is to assign an array of values to a session variable from within a function like this:

<?php  // functions.php
function authorise() {
  $_SESSION['my_data'] = array(1 => FALSE, 2 => FALSE, 3 => FALSE, 4 => FALSE, 5 => FALSE);
  echo "<p><a href=page1.php>Click to start</a></p>";
}
?>

Then from my index page I will call the function

<?php // index.php
include_once 'header.php';
authorise();
// PRINT OUT THE CONTENT OF $_SESSION['my_data']
if (session_status() == PHP_SESSION_NONE) {
  echo "no session";
} else {
  echo "session is on<br>";
  echo print_r($_SESSION['my_data']);
}
echo "</body></html>";
?>

After having initialised the session in header.php

<!DOCTYPE html>
<html>
<body>
<?php session_start(); ?>
<?php include_once 'functions.php'; ?>

the script will correctly print

Click to start

session is on
Array ( [1] => [2] => [3] => [4] => [5] => ) 1

Yet when I reach page1.php

<?php  // page1.php
echo "PAGE1<br>";
include_once 'header.php';
if (session_status() == PHP_SESSION_NONE) {
  echo "no session";
} else {
  echo "session is on<br>";
  echo print_r($_SESSION['my_data']);
}
echo "</body></html>";
?>

variable $_SESSION['my_data'] is empty. The script prints

PAGE1
session is on
1
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
    • ¥20 关于URL获取的参数,无法执行二选一查询
    • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
    • ¥15 marlin编译错误,如何解决?
    • ¥15 有偿四位数,节约算法和扫描算法
    • ¥15 VUE项目怎么运行,系统打不开
    • ¥50 pointpillars等目标检测算法怎么融合注意力机制
    • ¥20 Vs code Mac系统 PHP Debug调试环境配置
    • ¥60 大一项目课,微信小程序
    • ¥15 求视频摘要youtube和ovp数据集