php - session 背后有什么故事

标签 php session

简单地说,我已经有足够的 session 了,所以该 session 工作的最佳服务器设置是什么。

示例 假设我们有 2 个文件 [a.php 和 b.php]

a.php 代码

<?php
session_start();
$_SESSION['msg'] = "Hello world";
header("Location: b.php");
exit;
?>

b.php代码

<?php
session_start();
echo $_SESSION['msg'];
unset($_SESSION['msg']);
?>

是的,它适用于很多人,但我想知道为什么它在某些主机上适用于我,并查看以下 php 信息

PHP INFO (WORKS) PHP Version 5.3.8 register_globals = On

Example Works

虽然它在我的第二个主机上无法工作,但具有以下信息

PHP INFO (NOT WORKS) PHP Version 5.2.17 register_globals = On

Example Not Works and giving 0

为什么? php 服务器设置有什么问题,我真的很沮丧,因为我的网站完全依赖此 session 作为警报:(

谢谢你帮助我

最佳答案

session 在 header 中发送,并且您使用 Location header 进行重定向。根据 PHP.net,header() 函数一次只会发送 1 个 header 。我认为您在服务器将 session header 发送给用户之前进行重定向。我可能是错的,所以用元刷新进行测试,看看会发生什么。是的,它已被弃用,但可以很好地用于此处的测试:

echo '<meta http-equiv="refresh" content="0;b.php">';

替换:

header("Location: b.php");

希望对你有用

关于php - session 背后有什么故事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9046000/

相关文章:

php - Joomla 3 全局配置缺少 header

php - 如何在 PHP 中包含外部文件?

php - 我应该调用一个包含 SESSION 值的变量而不是在 PHP 中调用实际 session 吗?

session - 在 Gorilla session 中使用自定义类型

ruby-on-rails - Rails 3 禁用 session cookie

php - 如何从下拉列表中插入数据到数据库

javascript - 如何使用 AngularJS 的 $http 将文件发送到 PHP 脚本

php - 有没有一种方法可以在没有 PHP 随机数的情况下使用 Sodium Encrypt?

asp.net-mvc - asp.net mvc 在 Controller 构建过程中的任何时候都可以使用 session 吗?

java - Hibernate session.flush() --> 如何只更新脏对象而不是所有内容?