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注入問題。
PHP編程鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答