程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP微信公眾開發筆記(六)

PHP微信公眾開發筆記(六)

編輯:關於PHP編程

PHP微信公眾開發筆記(六)


PHP微信公眾開發筆記系列
日期:2014.9.4


今天主要是完善了搜索,加入了管理員模塊,優化了身份驗證,將學生信息管理封裝為了一個類(整這個真是好累呀,主要是數據庫操作那裡語法老是出問題,一直是各種小問題)


感受:
PHP開發沒有斷點、不能及時打印log真是好累呀(我是用sublime寫的,然後直接微信公眾號調試,累屎我了),錯誤信息經常不能及時發覺、或者說有些問題能通過斷點排除掉了沒能夠排除。但是也說明了,我寫代碼還是太馬虎了啊。

2014.9.10整理筆記:
寫這個筆記的時候,在趕功能,所以也就是簡單的記幾筆當時的工作內容,現在功能開發得差不多了,就來整理之前的筆記。

在筆記五中我提到了,將公眾平台上需要實現的一些功能按類型進行了分類處理:菜單、數據庫都抽離出來了。這樣做的好處就是在今後我做功能調整或者新增功能不會影響現有的功能,利於開發維護。
在筆記四中提到了在SAE上我搭建了一個雲端數據庫,並做了一個簡單的數據檢索功能(在菜單-查詢菜單中回復姓名,或者學號便能得到對應的相關信息),在同學的建議下,需要快捷查找信息,因此在這裡實現了一個我稱之為快捷檢索的功能:用戶回復姓名+電話、姓名+老家、姓名+地址便可以得到對應的相關信息;這個功能的實現也是建立在對數據庫的檢索和關鍵詞監測的基礎之上的。

一、完善搜索

在這裡為了維護方便,封裝了一個學生信息管理的類,也就是對之前提到的數據庫管理進行一個包裝,因為我當時是想到了後期可能會有更多的數據庫需求,後期的開發維護需求會更高;因此現階段數據庫處理的相關文件有:

\


1、student_info_sql.class.php 也就是對mysql_sae.func.php的一層包裝:

1)在mysql_sae.func.php中提供對數據庫操作的語句,函數接受相關的參數<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140912/2014091209043830.png" alt="\">


2)然後我在student_info_sql.class.php的使用過程中,傳遞對應的參數過去就可

\


而且這樣一層包裝,就可以保證我可以自由控制需要顯示的信息,即我顯示學生信息就再這裡控制顯示,當我需要弄一個關鍵詞之類的數據表,那麼我就只需要新建一個對應的php文件,然後在該文件中控制格式就可以了;

在這裡提一下上上圖中出現的sae_log()函數,這個函數也是查找網上的資料得到的一個打印log而包裝出來的:

\


我這樣包裝的目的在於,假如某天我不需要打印log了,直接注釋掉這裡就可以了。
包裝的這個student數據庫管理類也是提供諸如檢索、添加等的操作。這裡也沒什麼需要額外筆記的。

2、然後就是提到的優化數據檢索了,也就是根據同學提出的需求---能快捷檢索到信息,這裡的關鍵點就是關鍵詞捕獲了,這裡便是使用到了php中對字符串相關處理函數的使用:
strstr()、str_replace() 我主要是使用到了這兩個;第一個函數用來判斷給定字符串中某個特定字符是否出現,第二個函數用來做字符替換。

在用戶發送消息過來的時候,我這樣做了處理:

\


對這三個關鍵詞進行處理,如果用戶發送過來的消息有這三個關鍵詞,然後用str_replace,將關鍵詞替換為空,就得到了姓名,那麼就會有相應的響應操作。上圖中出現的check_userinfo是我用來做用戶身份驗證的;menu_Distribution_Center即我之前提到的整理菜單功能而封裝的一個函數,菜單分發。在獨立封裝的基礎之上,我只需要捕獲關鍵詞,然後調用已實現的查詢菜單的相關功能便很快的就實現了這個功能。功能實現上很簡單,當時遇到的問題就主要是諸如php語法問題、數據庫語法問題,各種坑,也體現了我這個人有的時候馬大哈,寫代碼的時候太馬虎,還有就是php畢竟沒有系統的學過,直接是邊寫代碼邊學習的,所以難免會碰到各種問題。

二、添加管理員模塊
因為有的時候沒有用電腦,而此時又需要操作如數據庫信息更新之類的,該怎麼辦?我就想到了可以實現一個管理員功能,在驗證身份的條件下,可以通過發送特定指令而實現相應的功能。我實現的具體思路是,封裝成一個類,一個統一的入口,然後身份驗證。因此我新建了一個稱之為admin_sys.class.php的文件,封裝成了一個類,有了統一的入口之後,假如我之後有新的需求,那麼我也只需要在這個類裡面添加就可以了,不會影響到別的系統功能:

1、一個統一的入口:

\


2、在這裡實現的驗證功能和之前實現的用戶身份驗證類似,也是使用到了$_SESSION進行信息保存:



先判斷是否驗證了管理員身份,驗證了之後就進入到具體的操作環節,具體的操作環境也是根據相對應的指令進行操作的。這裡也就不提了,實現了這個管理員功能是挺便捷的,我可以很方便的更新用戶信息、添加用戶信息等。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved