如何替换PHP 5.4+的session_register()

Mic*_*ing 6 php session

突然出现在登录我的某个网站时遇到以下错误:

调用未定义的函数session_register()

经过一些研究后,我发现在PHP 5.4之后不推荐使用session_register().我检查了我的主机控制面板,果然它说我正在运行的当前版本是PHP 5.4.19.我认为他们只是强迫升级,这就是为什么这个问题似乎突然发生的原因.

我查看了几个Stack Overflow帖子并查看了PHP文档的链接.根据我收集的内容,不推荐使用session_register(),而应使用$ _SESSION替换它.

问题是,这两个已经出现在我的代码中.这是我的index.php文件中的代码:

  53 <? if ($username) {
  54    session_register("ADMIN");
  55    $_SESSION['ADMIN'] = $username;
  56 ?>
Run Code Online (Sandbox Code Playgroud)

所以我希望通过删除第54行(已弃用的部分)然后它应该工作,但事实并非如此.当我这样做时,它打破了代码.

根据我读其他职位这里这里,他们似乎在说,我在上面应该行55看到自己的代码做的伎俩.所以我有点困惑为什么它不起作用.如果有人能告诉我我应该使用什么代码,我会真诚地感激它.该脚本的开发人员并未真正提供支持.

注意:是的,是的,在页面的最顶部调用了session_start().

小智 6

可能它缺少对session_start的调用,session_register会自动执行此操作,因此您需要做的就是确保在使用$ _SESSION global 之前调用了session_start .

您可以在这里查看更多信息http://www.php.net/manual/en/function.session-register.php

如果在调用此函数之前未调用session_start(),则将对没有参数的session_start()进行隐式调用.$ _SESSION不会模仿此行为,并且在使用前需要session_start().