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

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

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

【總結:防止php代碼中帶着一些輸出的問題】
(1)在php標籤中開始<?php 前頂格
(2)php結束符要不不寫,寫了就不要在結束以後還有換行【防止該文件被包含以後提早出線輸出】
(3)或者經過腳原本控制輸出緩存linux

另外還有編碼的問題:
utf-8+
utf-8+BOM:至關於加了UTF8的簽名【這就是svn對bom要求的緣由】sql

 


2.將驗證碼也做爲工具類
如今已經瞭解過的工具類有:數據庫操做類、session入庫工具類、驗證碼、文件上傳的工具類數據庫

針對這裏,也須要對用戶的登陸狀態進行標記【保證從新登陸以後不須要再次進行驗證。cookie的存活時間和session的存活時間要一致,否則就會浪費或者衝突】
【保存用戶名id進行cookie登陸的標示】瀏覽器


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

 

3.對整個後臺的登陸處理
【用戶的登陸,已經登陸下的免登陸,改密碼,刪用戶,對密碼的加密、退出登陸、登陸密碼的保留時間等處理都須要考慮】服務器

【進行屢次的分支處理】cookie

 

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

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)保存上傳文件的臨時文件夾有錯誤

相關文章
相關標籤/搜索