驗證碼確保php無輸出、sql語句的封裝性、檔案上傳的工具類【這三個重點工具類實現】

來源:互聯網
上載者:User

標籤:

1.php代碼在引入中不會進行結束或者確保結束之後沒有空格,來保證php在被包含中沒有被輸出【防止header和session_start()對輸出的控制】
實質上,需要注意的就是,要不就進行輸出緩衝控制以及php開始標籤前沒有空格

驗證碼這個功能需要header和session兩個功能【尤其需要注意輸出的問題】

【總結:防止php代碼中帶著一些輸出的問題】
(1)在php標籤中開始<?php 前頂格
(2)php結束符要不不寫,寫了就不要在結束之後還有換行【防止該檔案被包含之後提前出線輸出】
(3)或者通過指令碼來控制輸出緩衝

另外還有編碼的問題:
utf-8+
utf-8+BOM:相當於加了UTF8的簽名【這就是svn對bom要求的原因】

 


2.將驗證碼也作為工具類
現在已經瞭解過的工具類有:資料庫操作類、session入庫工具類、驗證碼、檔案上傳的工具類

針對這裡,也需要對使用者的登入狀態進行標記【保證重新登入之後不需要再次進行驗證。cookie的存活時間和session的存活時間要一致,不然就會浪費或者衝突】
【儲存使用者名稱id進行cookie登入的標示】


任何一個跳轉都要進行一次強制停止【這一點需要注意,防止下面的代碼依舊被執行,帶來效率或者代碼上的錯誤】

 

3.對整個背景登入處理
【使用者的登入,已經登入下的免登入,改密碼,刪使用者,對密碼的加密、退出登入、登入密碼的保留時間等處理都需要考慮】

【進行多次的分支處理】

 

【注意:sql語句的寫法的靈活使用。也能叫做sql的自動化。sql語句只需要業務層傳入即可實現sql的使用】
4.在模型中使用首碼的表的控制【也是在表設定前的配置】
對配置的讀取和拼接使用即可。

sql語句中,使用反引號做關鍵字的聲明,可以再sql語句中使用物件導向的調用。【{$this->method()}、{$this->proporty}實現對對象中成員的訪問,來實現動態配置表的首碼,以及表的擷取等等。將sql語句的寫法更加動態化】

【基於sql語句中使用物件導向的調用方法來實現sql的自動化的寫法,使得sql的封裝性也能變得非常強】
【這一段的sql的重新拼湊的寫法對sql處理的代碼的調用嚴格化,傳入要操作的表名,欄位等實現對資料庫的操作。這樣能夠做到sql工具類的最佳化】
【工具類:http://blog.sina.com.cn/s/blog_6568a85d0100ltyj.html。完善工具類實現自動處理(增刪改查)的功能,更強的封裝性】


5.檔案上傳類實現:
從瀏覽器到伺服器上上傳檔案。

資料在儲存或傳輸時,所有資料轉送的格式有:位元組碼,二進位碼。
一般字元串上傳到伺服器上是通過位元組碼進行傳輸。
檔案上傳的編碼時二進位碼。
預設情況下,瀏覽器不會處理二進位編碼,將資料轉為位元組碼處理。【所以需要進行聲明】


【上傳檔案本質上都是瀏覽器在做,伺服器在接收,跟指令碼無關。指令碼負責系統管理】

上傳檔案的步驟:
(1)告訴瀏覽器,當前表單內,有需要被二進位編碼的資料(enctype="multipart/form-data")【聲明上傳的資料是二進位編碼】
(2)伺服器指定的指令碼下,進行檔案的處理【也是兩種形式:對位元組碼儲存在$_POST變數內,對二進位編碼處理:放在一個臨時檔案夾內(在sleep處理時間內,可以看到臨時檔案夾中儲存了該檔案。否則看不出來)】
(3)對上傳到伺服器上的檔案進行處理【路徑,檔案類型管理(http協議中就有對檔案類型的管理mime類型),檔案重新命名】【上傳檔案的資訊被儲存在$_FILES中,儲存檔案的相關資訊,然後對該資訊進行改動,實作類別似linux命令來操作檔案的相關能力】
【這才是上傳檔案的實現本質!!!!】
(4)上傳成功後返回指定檔案的路徑


指令碼本身就是類似linux指令碼一樣,也是對伺服器資源的處理

 


【對本質瞭解之後,完成一個上傳檔案的工具類】
【注意php.ini中關於檔案上傳的配置問題(兩個配置問題:upload和post對檔案的限制)】

【檔案上傳中出現的錯誤:$_FILES中的error報錯】
(1)兩個配置對檔案的大小有限制
(2)檔案並未上傳完或沒有上傳檔案就提交
(3)儲存上傳檔案的臨時檔案夾有錯誤

 

驗證碼確保php無輸出、sql語句的封裝性、檔案上傳的工具類【這三個重點工具類實現】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.