仓酷云

标题: PHP教程之register_globals利用详解 [打印本页]

作者: 谁可相欹    时间: 2015-2-4 00:28
标题: PHP教程之register_globals利用详解
会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!详解   register_globals利用详解
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']来承受传递过去的值。(注:当<form>的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呢?缘由有2:
1、php今后的新版本默许都用Off,固然你可以设置它为On,然而当你没法掌握办事器的时分,你的代码的兼容性就成为一个大成绩,所以,你最好从如今就入手下手用Off的作风入手下手编程
2、这里有两篇文章引见为何要Off而不必On
http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=php3&Number=292803&page=0&view=collapsed&sb=5&o=all&fpart=
http://www.php.net/manual/en/security.registerglobals.php

如今还有一个成绩就是,之前用On作风写的大批剧本怎样办?
假如你之前的剧本计划得好,有个公共包括文件,好比config.inc.php一类的文件,在这个文件里加上以下的代码来摹拟一下(这个代码不包管100%可以处理你的成绩,由于我没有大批测试,然而我感觉后果不错)。别的,这个帖子里的处理办法也能够参考一下(http://www.chinaunix.net/forum/viewtopic.php?t=159284)。

代码:

<?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的情形不单单影响到若何获得从<form>、url传递过去的数据,也影响到session、cookie,对应的,失掉session、cookie的体例应当为:$_SESSION[]、$_COOKIE。同时关于session的处置也有一些改动,好比,session_register()没有需要并且生效,详细的变更,请检查php manual里的Session handling functions

$_REQUEST两头的内容实践上仍是来历于$_GET $_POST $_COOKIE,弱点是没法判别变量究竟来自于get post 仍是cookie,对请求对照严厉的场所不合用。
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.


  工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。
作者: 简单生活    时间: 2015-2-4 13:12
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者: 海妖    时间: 2015-2-7 21:45
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者: 冷月葬花魂    时间: 2015-2-8 05:03
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者: 透明    时间: 2015-2-24 06:38
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
作者: 不帅    时间: 2015-3-4 19:40
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 柔情似水    时间: 2015-3-6 19:20
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 变相怪杰    时间: 2015-3-8 11:59
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
作者: 分手快乐    时间: 2015-3-15 22:27
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 活着的死人    时间: 2015-3-22 17:10
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 灵魂腐蚀    时间: 2015-3-22 17:10
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 愤怒的大鸟    时间: 2015-3-24 16:41
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 再现理想    时间: 2015-3-27 09:09
当然这种网站的会员费就几十块钱。
作者: 因胸联盟    时间: 2015-4-1 13:00
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者: 蒙在股里    时间: 2015-4-4 15:21
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 只想知道    时间: 2015-4-5 21:51
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 莫相离    时间: 2015-4-17 07:00
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 小女巫    时间: 2015-4-18 03:25
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 若相依    时间: 2015-4-26 01:11
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2