首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改PHP会话变量

更改PHP会话变量
EN

Stack Overflow用户
提问于 2012-11-30 18:42:33
回答 3查看 117关注 0票数 1

我遇到了一个奇怪的PHP会话问题。有人能告诉我会话是如何工作的吗?

要查看问题所在,请将以下代码加载到任意php文件中,比如test.php,然后运行2次。注意,您必须运行它两次,即加载页面并重新加载它。

代码语言:javascript
复制
<?
session_start();
$_SESSION["test"] = "Original////";
$test=$_SESSION["test"];
echo $_SESSION["test"];
$test="New////";
echo $_SESSION["test"];
?>

在我的服务器上,当我第一次加载这个测试页面时,我得到

原创/原创/

这是正确的。但是当我重新加载它的时候,我得到

原始/新/

这意味着第5行“$test=”新建/“;”实际重写我的$_SESSION“测试”。对我毫无意思。有人知道发生了什么吗?或者它只是发生在我的服务器上?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-30 18:48:29

您的服务器上似乎启用了register_globals。您需要禁用该指令。

票数 6
EN

Stack Overflow用户

发布于 2012-11-30 18:52:01

首先,不要使用<?作为PHP的起始标签,请使用<?php。其次,如果您启用了register_globals,这是预期的行为。看看这个链接:

http://www.theblog.ca/session-register-globals

标题是这样写的:

当register_globals为on时,会话变量将覆盖全局变量

示例代码与您的代码类似:

代码语言:javascript
复制
<?php
session_start();
$canadaday = 'July 1st';
$_SESSION['canadaday'] = 'July 2nd';

print '<p>When is Canada Day?</p>';
print '<p><strong>' . $canadaday . '</strong></p>';
?>

使用register_globals时,结果为July 2nd。HTH。

票数 1
EN

Stack Overflow用户

发布于 2012-11-30 18:53:04

代码语言:javascript
复制
<?php
session_start();
$_SESSION["test"] = "Original////";
$test=$_SESSION["test"];
echo $_SESSION["test"];
$test="New////";
echo $_SESSION["test"];
?>

我已经在我的环境中尝试过你的代码它运行的perfectly.its总是打印原始的/Original/所以它只发生在你的服务器上

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13643608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档