• Ucenter源码解析之——index.php


    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注入问题。

  • 相关阅读:
    Python 日期格式化 及 schwartzian排序
    好的数据源
    董的博客 hadoop
    hadoop 2.2.0 集群部署 坑
    python 单元测试
    减少前端代码耦合
    jQuery $.ajax传递数组的traditional参数传递必须true
    如何做一个大格局的人
    中国各省市县级 JSON 文件
    用v-for进行table循环
  • 原文地址:https://www.cnblogs.com/xiaoyuqin/p/4286829.html
Copyright © 2020-2023  润新知