PHP5.3中的PHP注册全局支持?
我一直在使用PHP5.2和register_globals。现在我转到PHP5.3,我知道我必须更改一些代码。我已经读过了,但我仍然不清楚我必须做出什么样的改变 在5.2中,我使用PHP5.3中的PHP注册全局支持?,php,Php,我一直在使用PHP5.2和register_globals。现在我转到PHP5.3,我知道我必须更改一些代码。我已经读过了,但我仍然不清楚我必须做出什么样的改变 在5.2中,我使用 session_start(); 在我表格的顶端。在5.3中,我还需要这样做吗 我目前也使用这样的变量 $_SESSION[php_g_name"] = "John"; 或 在5.3中继续使用可以吗?如果不是,vars的语法是什么 感谢您的澄清。是的,您仍然需要在每个文件的顶部设置会话开始。 对于变量,$\u S
session_start();
在我表格的顶端。在5.3中,我还需要这样做吗
我目前也使用这样的变量
$_SESSION[php_g_name"] = "John";
或
在5.3中继续使用可以吗?如果不是,vars的语法是什么
感谢您的澄清。是的,您仍然需要在每个文件的顶部设置会话开始。 对于变量,
$\u SESSION[“php\u g\u name”]
将起作用,但是$php\u g\u name
将不起作用,除非您声明$php\u g\u name=$\u GET(或SESSION)[“php\u g\u name”]
是php最具标志性但也是最受诟病的“功能”之一。正是这一点让PHP在早期获得了如此多的关注和使用
你可以这样做
<?php
//for a url example.com/myfile.php?UserName=Toby
echo "Hello $UserName";
?>
它使得从_get和_POST以及(在您的案例中)会话访问变量变得非常容易
然而它的安全性非常差,并且在PHP4之后默认关闭(有人会确切地告诉我)
基本上,它对您意味着,如果您这样做是为了访问会话变量
<?php
session_start();
echo $php_g_name ;
那太好了。但是如果没有register\u globals,$php\u g\u name='foo'
将无法工作。你一开始就使用register_globals,真丢脸。这是(而且一直以来都是)PHP最愚蠢的设计“特性”。我使用的是echo$_SESSION[PHP_g_name”]方法,而不是echo$PHP_g_name方法,所以看起来我的代码可以迁移到PHP5.3+,对吧?应该可以,但可能先在测试服务器上试试,看看是否有其他问题。
<?php
session_start();
echo $php_g_name ;
<?php
session_start();
echo $_SESSION["php_g_name"] ;