【转】php 参数传递以及php获取url参数之后的较合理安排

发布于 2011-04-06 作者 [重庆SEO]

本文来自百度空间博客搬家

2007年开始使用的是 hi.baidu.com/udjy
后来百度空间强制升级为轻博客 hi.baidu.com/imnoco
2015年百度关闭了百度空间

php 传参数,有两种方式GET 和POST,今天说的是url里面的参数传递,php get参数方法
举例一下,index.php?do=fly
$_GET['do'] 这样就能取到fly这个值了,这个时候,我们php url的参数传递的一个特点就出来了
1.很明显,它是明文的,所以它是不保密的哦
问题来了,我要保密怎么办?以面的参数为例,你可以把fly算成另外的值
直观点就是:fly加密得到 abcdef 这个值 也就是说 abcdef在你的程序里就代表了fly这个值,而对外人来说就是无意义的值了。。。(说的好罗嗦啊。。。。。)

2.参数的合理安排
php参数传递来后的合理安排,这个是从Comsenz Inc. 出的u
废话不多说,看源代码片段,全代码请自行下载了~
废话不多说,看源代码片段,全代码请自行下载了~ 1
2
3
4
5
6
7
8
9//以space.php为例
//允许动作
$dos = array('feed', 'doing', 'blog', 'album', 'thread', 'mtag', 'friend', 'wall', 'tag', 'notice', 'share', 'home', 'pm', 'app');

//...省略数句,直接看这个
$do = (!empty($_GET['do']) && in_array($_GET['do'], $dos))?$_GET['do']:'index';

//最后根据动作的值分到其他模块
include_once(S_ROOT."./source/space_{$do}.php");

要虚心学习这段程序的大方向,:-)


它是这个意思:space.php 这个执行脚本,只允许传递$dos数组里的存在的值
比如如果脚本space.php这样传递了参数: space.php?do=feed,那么上面的代码将会直接冲向 space_feed.php去执行!
这样我觉得至少有两个好处
1.一般可以无视用户传来的不合理值,因为它会默认space.php?do=index,看看中间那句(老实说,我是不常用,不过自此以后,我要开始用了)
2.减少space.php的文件大小,这个怎么说呢?
假设你原来有do=index(假设代码量10k) 和 do=blog(假设代码量5k) 两个值
如果不按照上面的方法"分流"的话,那么space.php的代码量就是 do=index + do=blog 约等于15k了
如果"分流"的话 space.php 1k space_index.php 10k space_blog.php 5k
看见了吗?你做space.php?do=blog 这个动作的时候,只需要执行 space.php + space_blog.php = 1+5 = 6k的代码量,而不需要把整个15k的总代码都弄进来搅。

说了一大通不知道对不对,不过这样的大方向,我看是值得学习的。