欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Ucenter源码解析之--index.php

程序员文章站 2022-04-13 18:03:41
...
1:安装好ucenter之后,进入Ucenter,如果在浏览器地址栏上输入ucenter域名,默认加载index.php,如果不带任何参数输入域名,将跳到根目录的admin.php。我们可以看代码

$m、$a是index.php和admin.php接收的参数。$m代码着将要实例化的类,$a代码着将要调用的method.比如,$m=user,$a=login.则会加载/control/user.php,$m=new usercontrol(),$m->onlogin();

接下来是引入释放版本的model下的文件,如果有会优先引入/release/下面的model文件,没有的话,则使用/model下的文件

如果你的$m和$a存在的话,那么,则会使用下面这段代码进行动态的调用。从代码中可以看m只有 以下几种,app、frame、user,这些都对应这个/control下面的几个文件。

然后将对应的control文件加载进来,获得类名,进而实例化类,调用method之前,先判断类是否有该函数,优先调用$method=on.$a方法,如果不存在的话,就使用_call($method)调用;

从下面的图中可以看到m可以实例化成下面对应的对象。至于$a的取值则对于改类下面的方法实现。我们可以做一个小测试.$m=app,$a=add,测试结果如右侧图,至于为什么返回-1,请看/control/app.php下面的onadd()方法。

index.php后面关于addslash函数 的加工,是一种安全措施,一般是为了处理PHP6以上的变化,因为php6已经弃用了MAGIC_QUOTES_GPC,所以服务器不会对$_POST,$_GET,$COOKIE.这些客户端来的数据进行转义。这样就需要使用addslashes对其手工转义,这样单引号‘、双引号",/的特殊字符将不会引发sql注入问题。