background image

 

php 语言流程控制中的主动与被动

  这一年来,广大的 phper 都在辛勤劳作, 比如淘宝改版, 云计算, 腾讯开放平台, 网游, 这

些作品少不了 phper 的功劳, 相信 php 语言可以继续领先行业 10 年, 我们憧憬未来 50 年, 

100 年, php 仍然如此叱咤风云. 我们都是渺小的一员, 除了会 php, 其它也就不精, 难以为生.

 大家都作努力吧. 

  什么是主动与被动. 举个例子吧. 你跑去 boss 办公室要求要加工资, 这就是主动, 无论

是从你自身角度来看, 还是 boss 角度来看, 你都是主动的, 是积极乐观的一面. 假如 boss 让

你去办公室, 然后让你把淘宝架构出来, 给你涨 20%工资, 这就叫被动. 相信承诺了你就被

动. 主动与被动简单就这样理解. 而程序流程中也会碰到如此难堪的主动与被动问题. 我们

看示例. 

A clier 

  当 buy qq 购买商品成功后, 通知 QQ 主服务器. 通过 http 协议. 

file_get_contents('http://www.qq.com/api.php?

add_saleinfo=buy_qq&orderid=12345&pay=888&email=a@qq.com'); 

  代码运行在 buy.qq.com 上面, 理解上来说是安全的, 但事实呢? 假如某人散发了此接口,

 后果将不可估计. 人人都可以伪造订单信息植入到 qq.com. 无论你是如何限制来路, 数据

检查. 退一万步, 危险的是写这代码的人. 那大家都会问, 既然是写代码的人, 权限已经很大,

怎 么 防 止 得 了 ?   这 就 需 要 由 被 动 (qq.com)   变 主 动 .   http://www.qq.com/api.php?

add_saleinfo=buy_qq 修改成不再接收任何的订单信息. 而是 token 值. 收到 token 值后, 接口

回调 buy.qq 的查询接口, 然后再入库. 普通用户再也创造不出 token 值, 就算知道 buy.qq 的

查询接口, 也不可能影响到 qq.com, 作为主体 qq.com 基本上属于主动, 不会时刻在混乱入

库, 而是主动分析, 思考入库. 

道理相同, 淘宝客玩家也有这个问题. 比如以前暴出来的部分浏览器修改网页中的 pid 值, 

让用户损失惨重. 这就是被动的结果. php 是这样写的, php 请求淘宝 api 接口,接收到商品