首页 后端开发 php教程 register_globals使用上的一些补充说明_PHP教程

register_globals使用上的一些补充说明_PHP教程

Jul 13, 2016 am 10:34 AM
安全性

register_globals是php.ini里的一个配置,这个配置影响到php如何接收传递过来的参数,如果你的问题是:为什么我的表单无法传递数据?为什么我的程序无法得到传递过来的变量?等等,那么你需要仔细的阅读以下的内容。 

register_globals的值可以设置为:On或者Off,我们举一段代码来分别描述它们的不同。 

<form name="frmTest" id="frmTest" action="URL"> 
	<input type="text" name="user_name" id="user_name"> 
	<input type="password" name="user_pass" id="user_pass"> 
	<input type="submit" value="login"> 
</form> 
登录后复制

当register_globals=Off的时候,下一个程序接收的时候应该用$_GET['user_name']和$_GET['user_pass']来接受传递过来的值。(注:当

的method属性为post的时候应该用$_POST['user_name']和$_POST['user_pass'])

当register_globals=On的时候,下一个程序可以直接使用$user_name和$user_pass来接受值。

顾名思义,register_globals的意思就是注册为全局变量,所以当On的时候,传递过来的值会被直接的注册为全局变量直接使用,而Off的时候,我们需要到特定的数组里去得到它。所以,碰到上边那些无法得到值的问题的朋友应该首先检查一下你的register_globals的设置和你获取值的方法是否匹配。(查看可以用phpinfo()函数或者直接查看php.ini)

那我们为什么要使用Off呢?

php以后的新版本默认都用Off,虽然你可以设置它为On,但是当你无法控制服务器的时候,你的代码的兼容性就成为一个大问题,所以,你最好从现在就开始用Off的风格开始编程。

现在还有一个问题就是,以前用On风格写的大量脚本怎么办?

如果你以前的脚本规划得好,有个公共包含文件,比如config.inc.php一类的文件,在这个文件里加上以下的代码来模拟一下(这个代码不保证100%可以解决你的问题,因为我没有大量测试,但是我觉得效果不错)。另外,这个帖子里的解决方法也可以参考一下:

<?php 
if ( !ini_get('register_globals') ) 
{ 
    extract($_POST); 
    extract($_GET); 
    extract($_SERVER); 
    extract($_FILES); 
    extract($_ENV); 
    extract($_COOKIE); 
    
    if ( isset($_SESSION) ) 
    { 
        extract($_SESSION); 
    } 
} 
?> 
登录后复制

register_globals = Off的情况不仅仅影响到如何获取从

、url传递过来的数据,也影响到session、cookie,对应的,得到session、cookie的方式应该为:$_SESSION[]、$_COOKIE。同时对于session的处理也有一些改变,比如,session_register()没有必要而且失效,具体的变化,请查看php manual里的Session handling functions

php manual 写到:

Variables provided to the script via the GET, POST, and COOKIE input mechanisms, and which therefore cannot be trusted. The presence and order of variable inclusion in this array is defined according to the PHP variables_order configuration directive.

$_REQUEST中间的内容实际上还是来源于$_GET $_POST $_COOKIE,缺点是无法判断变量到底来自于get post 还是cookie,对要求比较严格的场合不适用。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/752365.htmlTechArticleregister_globals是php.ini里的一个配置,这个配置影响到php如何接收传递过来的参数,如果你的问题是:为什么我的表单无法传递数据?为什么...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP5和PHP8的性能和安全性:对比和改进 PHP5和PHP8的性能和安全性:对比和改进 Jan 26, 2024 am 10:19 AM

PHP是一种广泛应用的服务器端脚本语言,用于开发Web应用程序。它已经发展了多个版本,而本文将主要讨论PHP5和PHP8之间的比较,特别关注其在性能和安全性方面的改进。首先让我们来看看PHP5的一些特点。PHP5是在2004年发布的,它引入了许多新的功能和特性,如面向对象编程(OOP)、异常处理、命名空间等。这些特性让PHP5变得更加强大和灵活,使得开发者能

Golang开发中的安全性挑战:如何避免被利用用于病毒制作? Golang开发中的安全性挑战:如何避免被利用用于病毒制作? Mar 19, 2024 pm 12:39 PM

Golang开发中的安全性挑战:如何避免被利用用于病毒制作?随着Golang在编程领域的广泛应用,越来越多的开发者选择使用Golang来开发各种类型的应用程序。然而,与其他编程语言一样,Golang开发中也存在着安全性挑战。特别是,Golang的强大功能和灵活性也使其成为潜在的病毒制作工具。本文将深入探讨Golang开发中的安全性问题,并提供一些方法来避免G

C#开发中如何处理跨域请求和安全性问题 C#开发中如何处理跨域请求和安全性问题 Oct 08, 2023 pm 09:21 PM

C#开发中如何处理跨域请求和安全性问题在现代的网络应用开发中,跨域请求和安全性问题是开发人员经常面临的挑战。为了提供更好的用户体验和功能,应用程序经常需要与其他域或服务器进行交互。然而,浏览器的同源策略导致了这些跨域请求被阻止,因此需要采取一些措施来处理跨域请求。同时,为了保证数据的安全性,开发人员还需要考虑一些安全性问题。本文将探讨C#开发中如何处理跨域请

win11是否需要安装杀毒软件? win11是否需要安装杀毒软件? Dec 27, 2023 am 09:42 AM

win11是自带杀毒软件的,一般来说杀毒的效果也都是很好的不需要装,不过唯一的缺点就是看到病毒是先卸载了而不是提前提醒你是否需要,要是接受的话可以不用下载其他杀毒软件。win11需要装杀毒软件吗:答:不需要一般来说win11是自带杀毒软件的,不需要我们额外的安装。如果你不喜欢win11系统自带杀毒软件的处理方式的话是可以重新安装的。如何关闭win11自带的杀毒软件:1、首先我们进入设置点击“隐私和安全性”。2、接着点击“window安全中心”。3、然后选择“病毒和威胁防护”。4、最后就可以将其关

Java 函数中内存管理技术与安全性的关系是什么? Java 函数中内存管理技术与安全性的关系是什么? May 02, 2024 pm 01:06 PM

Java中的内存管理涉及自动内存管理,使用垃圾回收和引用计数来分配、使用和回收内存。有效的内存管理对于安全性至关重要,因为它可以防止缓冲区溢出、野指针和内存泄漏,从而提高程序的安全性。例如,通过正确释放不再需要的对象,可以避免内存泄漏,从而提高程序性能并防止崩溃。

WebSocket协议的安全性与加密传输实现 WebSocket协议的安全性与加密传输实现 Oct 15, 2023 am 09:16 AM

WebSocket协议的安全性与加密传输实现随着互联网的发展,网络通信协议逐渐演化,传统的HTTP协议有时无法满足实时通信的需求。而WebSocket协议作为一种新兴的通信协议,具有实时性强、双向通信和低延迟等优势,被广泛应用于在线聊天、实时推送和游戏等领域。然而,由于WebSocket协议的特点,导致其在通信过程中可能存在一些安全性问题。因此,对WebSo

C++ 容器库的迭代器安全性的保证 C++ 容器库的迭代器安全性的保证 Jun 05, 2024 pm 04:07 PM

C++容器库提供以下机制确保迭代器的安全性:1.容器不变性保证;2.复制迭代器;3.范围for循环;4.Const迭代器;5.异常安全。

Linux服务器故障与安全性:如何健康管理系统 Linux服务器故障与安全性:如何健康管理系统 Sep 10, 2023 pm 04:02 PM

随着互联网技术的发展,越来越多的企业和个人选择使用Linux服务器来托管和管理他们的应用程序和网站。然而,随着服务器的数量增加,服务器故障和安全性问题也成为了一项紧迫的任务。本篇文章将探讨Linux服务器故障的原因以及如何健康地管理和保护系统。首先,让我们来看一下可能导致Linux服务器故障的一些常见原因。首先,硬件故障是最常见的原因之一。例如,服务器过热、

See all articles