繁体   English   中英

PHP在5.3中注册全局支持?

[英]PHP register globals support in PHP 5.3?

我一直在使用PHP 5.2并使用register_globals ON。 现在,我转向PHP 5.3,并且我知道我必须更改一些编码。 我已经阅读了有关此内容的内容,但对于要进行哪些更改仍然不清楚。

在5.2中,我使用

session_start();

在我表格的顶部。 在5.3中,我仍然需要这样做吗?

我目前也这样使用vars

$_SESSION[php_g_name"] = "John";

要么

if ($_SESSION["php_g_name"] == "")

可以继续在5.3中使用吗? 如果不是,vars的语法是什么?

感谢您的澄清。

PHP Register_GlobalsPHP最具标志性的功能之一,但也是最受人们指责的功能之一。 正是这些使PHP在早期获得了如此多的关注和使用。

你可以这样做

<?php
 //for a url example.com/myfile.php?UserName=Toby
 echo "Hello $UserName";
?>

这使得从_GET和_POST以及_SESSION(根据您的情况)访问变量非常容易。

但是,它具有极大的安全隐患,并且自PHP 4左右以来已默认关闭(有人会确切地告诉我)。

基本上,这对您来说意味着,如果您这样做是为了访问会话变量

<?php
 session_start();
 echo $php_g_name ;

注册全局变量$ php_g_name会有一个值,现在不会。 但是,这将起作用。

<?php
 session_start();
 echo $_SESSION["php_g_name"] ;

如果您目前正在这样做,那应该没问题。 您将需要更改代码以始终使用包含数组,例如$_SESSION

是的,您仍然需要将会话开始设置在每个文件的顶部。 对于变量, $_SESSION["php_g_name"]将起作用,但是$php_g_name将不起作用,除非您声明$php_g_name = $_GET(or session)["php_g_name"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM