Ⅰ php滑動拼圖驗證碼的圖片是怎樣生成的
1 如果放在項目中用,驗證碼圖片希望可以是介面返回。ImageView以及其子類支持花式載入圖片。
2 繼承自ImageView,繪制圖片本身不用我們干預,也不用我們操心scaleType,節省很多工作。
* 在onSizeChanged()方法中生成 和 控制項寬高相關的屬性值:
1 初始化時隨機生成驗證碼區域起點
2 生成驗證碼區域Path
3 生成滑塊Bitmap
* onDraw()時,依次繪制:
1 驗證碼陰影
2 滑塊
Ⅱ php學習有什麼要求
HP 學習目錄
├─PHP視頻教程 1 LAMP網站構建
│ ├─PHP教程 1.1.1 新版視頻形式介紹
│ ├─PHP教程 1.1.2 BS結構軟體類型介紹
│ ├─PHP教程 1.1.3 現在是Web2.0的時代
│ ├─PHP教程 1.1.4 Web開發標准
│ ├─PHP教程 1.1.5 認識腳本語言
│ ├─PHP教程 1.2.1 動態網站開發所需的web構件1
│ ├─PHP教程 1.2.2 動態網站開發所需的web構件2
│ ├─PHP教程 1.2.3 動態網站開發所需的web構件3
│ ├─PHP教程 1.3.1 Web的工作原理
│ ├─PHP教程 1.3.2 Web工作原理之url解析
│ ├─PHP教程 1.3.3 Web工作原理之動態網站解析
│ ├─PHP教程 1.4.1 介紹了三種主流的Web應用平台
│ ├─PHP教程 1.4.2 主要三種Web平台進行對比
│ └─PHP教程 1.5.1 介紹LAMP網站開發組合概述及發展趨勢
├─PHP視頻教程 2 從搭建你的PHP開發環境開始
│ ├─PHP教程 2.1.1 PHP的幾種運行環境
│ ├─PHP教程 2.2.1 安裝PHP的運行環境
│ └─PHP教程 2.2.2 PHP運行環境的介紹
├─PHP視頻教程 3 PHP基本語法
│ ├─PHP教程 3.1.1 PHP的功能介紹
│ ├─PHP教程 3.2.1 第一個PHP程序
│ ├─PHP教程 3.3.1 PHP語言標記及指令分隔符「分號」
│ ├─PHP教程 3.3.2 PHP程序注釋及空白的使用
│ ├─PHP教程 3.4.1 PHP變數在計算機內存中的存儲方式
│ ├─PHP教程 3.4.2 PHP變數的聲明及變數的命名
│ ├─PHP教程 3.4.3 PHP可變變數
│ ├─PHP教程 3.4.4 PHP引用變數1
│ ├─PHP教程 3.4.5 PHP引用變數2
│ ├─PHP教程 3.5.1 PHP變數類型的介紹
│ ├─PHP教程 3.5.2 PHP布爾類型(boolean)
│ ├─PHP教程 3.5.3 PHP整型(integer)和浮點型(float或double)
│ ├─PHP教程 3.5.4 PHP字元串的聲明及定義
│ ├─PHP教程 3.5.5 PHP字元串中單雙引號的區別
│ ├─PHP教程 3.5.6 PHP字元串的定界符聲明
│ ├─PHP教程 3.5.7 PHP變數的其它數據類型
│ ├─PHP教程 3.6.1 PHP數據類型轉換及強制類型轉換
│ ├─PHP教程 3.6.2 PHP數據類型轉換之自動類型轉換
│ ├─PHP教程 3.7.1 PHP常量的介紹
│ ├─PHP教程 3.7.2 PHP常量的聲明和使用
│ ├─PHP教程 3.7.3 預定義常量
│ ├─PHP教程 3.8.1 PHP中的運算符號有哪些
│ ├─PHP教程 3.8.2 PHP算術運算符
│ ├─PHP教程 3.8.3 PHP自加自減運算
│ ├─PHP教程 3.8.4 PHP自加自減運算需要注意的地方
│ ├─PHP教程 3.8.5 PHP賦值運算符
│ ├─PHP教程 3.8.6 PHP比較運算符
│ ├─PHP教程 3.8.7 PHP邏輯運算符
│ ├─PHP教程 3.8.8 PHP邏輯運算符的特性(短路)
│ ├─PHP教程 3.8.9 PHP中的位運算符1
│ ├─PHP教程 3.8.10 PHP中的位運算符2
│ ├─PHP教程 3.8.11 PHP中的位運算符3
│ ├─PHP教程 3.8.12 PHP其他運算符
│ └─PHP教程 3.8.13 PHP運算符的優先順序和表達式
├─PHP視頻教程 4 PHP的流程式控制制結構
│ ├─PHP教程 4.1.1 PHP流程式控制制概述
│ ├─PHP教程 4.1.2 PHP分支結構
│ ├─PHP教程 4.2.1 PHP單一條件分支結構和雙向條件分支結構
│ ├─PHP教程 4.2.2 58PHP多向條件分支結構(elseif子句)
│ ├─PHP教程 4.2.3 PHP多向條件分支(switch語句)1
│ ├─PHP教程 4.2.4 PHP多向條件分支(switch語句)2
│ ├─PHP教程 4.2.5 PHP巢狀分支結構
│ ├─PHP教程 4.2.6 PHP實例(簡單計算器)1
│ ├─PHP教程 4.2.7 PHP實例(簡單計算器)2
│ ├─PHP教程 4.2.8 PHP實例(簡單計算器)3
│ ├─PHP教程 4.2.9 PHP實例(簡單計算器)4
│ ├─PHP教程 4.3.1 PHP循環結構的介紹
│ ├─PHP教程 4.3.2 PHP循環結構while語句
│ ├─PHP教程 4.3.3 PHP循環結構while的應用
│ ├─PHP教程 4.3.4 PHP循環結構do-while語句
│ ├─PHP教程 4.3.5 PHP循環結構for語句
│ ├─PHP教程 4.3.6 PHP循環結構for語句的應用
│ ├─PHP教程 4.3.7 特殊流程式控制制語句
│ └─PHP教程 4.3.8 PHP流程式控制制語句goto
├─PHP視頻教程 5 PHP的函數應用
│ ├─PHP教程 5.1.1 PHP函數的定義和應用
│ ├─PHP教程 5.2.1 PHP自定義函數的語法格式
│ ├─PHP教程 5.2.2 PHP自定義函數中的參數
│ ├─PHP教程 5.2.3 PHP自定義函數中的返回值(return)
│ ├─PHP教程 5.3.1 PHP局部變數
│ ├─PHP教程 5.3.2 PHP全局變數
│ ├─PHP教程 5.3.3 PHP靜態變數
│ ├─PHP教程 5.4.1 PHP常規參數的函數
│ ├─PHP教程 5.4.2 PHP引用參數的函數
│ ├─PHP教程 5.4.3 PHP默認參數的函數
│ ├─PHP教程 5.4.4 PHP可變個數參數的函數
│ ├─PHP教程 5.4.5 PHP變數函數
│ ├─PHP教程 5.4.6 PHP回調函數
│ ├─PHP教程 5.4.7 PHP製作回調函數1
│ ├─PHP教程 5.4.8 PHP製作回調函數2
│ ├─PHP教程 5.4.9 PHP製作回調函數3
│ ├─PHP教程 5.4.10 PHP系統函數
│ ├─PHP教程 5.5.1 PHP遞歸函數
│ ├─PHP教程 5.6.1 PHP載入自定義的函數庫
│ ├─PHP教程 5.7.1 PHP5.3的新特性匿名函數
│ ├─PHP教程 5.8.1 PHP閉包函數(closures)的概念
│ └─PHP教程 5.8.2 PHP閉包函數(closures)的特性
├─PHP視頻教程 6 PHP中的數組與數據結構
│ ├─PHP教程 6.1.1 PHP數組的概述
│ ├─PHP教程 6.1.2 PHP數組的基本概念及分類
│ ├─PHP教程 6.2.1 PHP數組聲明的特性
│ ├─PHP教程 6.2.2 PHP索引和關聯數組及需要注意的細節
│ ├─PHP教程 6.2.3 PHP使用array()聲明數組
│ ├─PHP教程 6.2.4 PHP刪除數組中的值應用實例(猴子選大王)
│ ├─PHP教程 6.2.5 PHP二維數組
│ ├─PHP教程 6.2.6 PHP多維數組
│ ├─PHP教程 6.3.1 使用for循環遍歷數組
│ ├─PHP教程 6.3.2 使用foreach語句遍歷數組
│ ├─PHP教程 6.3.3 使用foreach語句遍歷數組的應用
│ ├─PHP教程 6.3.4 list()函數的語法結構
│ ├─PHP教程 6.3.5 each()函數的特性
│ ├─PHP教程 6.3.6 使用list( )、each( )和while循環遍歷數組
│ ├─PHP教程 6.3.7 使用數組的內部指針控制函數遍歷數組
│ ├─PHP教程 6.4.1 PHP超全局數組(預定義變數)概述
│ ├─PHP教程 6.4.2 伺服器變數$_SERVER和環境變數$_ENV
│ ├─PHP教程 6.4.3 PHP超全局數組介紹1
│ ├─PHP教程 6.4.4 PHP超全局數組介紹2
│ ├─PHP教程 6.5.1 PHP常用數組函數的分類
│ ├─PHP教程 6.5.2 PHP數組中和鍵值搜索相關的函數1
│ ├─PHP教程 6.5.3 PHP數組中和鍵值搜索相關的函數2
│ ├─PHP教程 6.5.4 PHP數組中和鍵值搜索相關的函數3
│ ├─PHP教程 6.5.5 PHP數組中統計數組元素的個數與唯一性的函數
│ ├─PHP教程 6.5.6 PHP使用回調函數處理數組的函數array_filter()
│ ├─PHP教程 6.5.7 PHP使用回調函數處理數組的函數array_walk()
│ ├─PHP教程 6.5.8 PHP使用回調函數處理數組的函數array_map()
│ ├─PHP教程 6.5.9 PHP中的冒泡(起泡)排序演算法
│ ├─PHP教程 6.5.10 PHP二分法進行快速排序的原理
│ ├─PHP教程 6.5.11 使用PHP程序進一步理解快速排序法
│ ├─PHP教程 6.5.12 PHP數組的排序函數1
│ ├─PHP教程 6.5.13 PHP數組的排序函數2
│ ├─PHP教程 6.5.14 PHP數組的排序函數3
│ ├─PHP教程 6.5.15 PHP多維數組的排序函數
│ ├─PHP教程 6.5.16 PHP拆分、合並、分解與結合數組函數1
│ ├─PHP教程 6.5.17 PHP拆分、合並、分解與結合數組函數2
│ ├─PHP教程 6.5.18 PHP數組與數據結構的函數
│ └─PHP教程 6.5.19 PHP其他有用的數組處理函數
─PHP視頻教程 7 PHP面向對象的程序設計
├─PHP教程 7.1.1 PHP面向對象之面向過程詳解
├─PHP教程 7.1.2 PHP面向對象之面向對象編程思想詳解
├─PHP教程 7.1.3 PHP面向對象的重要優勢及案例分析
├─PHP教程 7.1.4 PHP類和對象之間的關系
├─PHP教程 7.2.1 PHP如何抽象一個類
├─PHP教程 7.2.2 PHP類中的成員屬性和成員方法
├─PHP教程 7.3.1 PHP實例化對象
├─PHP教程 7.3.2 PHP畫圖理解對象在內存中的形式
├─PHP教程 7.3.3 特殊的對象引用」$this」
├─PHP教程 7.3.4 PHP構造方法
├─PHP教程 7.3.5 PHP析構方法
├─PHP教程 7.4.1 復習前面的面向對象知識
├─PHP教程 7.5.1 PHP面向對象封裝性1
├─PHP教程 7.5.2 PHP面向對象封裝性2](http://www.jianshu.com/p/2713d9252da4)
├─PHP教程 7.5.3 PHP面向對象封裝性之魔術方法1
├─PHP教程 7.5.4 PHP面向對象封裝性之魔術方法2
├─PHP教程 7.6.1 PHP類的繼承
├─PHP教程 7.6.2 PHP類的訪問類型控制
├─PHP教程 7.6.3 PHP繼承中的重載(覆蓋)
├─PHP教程 7.7.1 PHP常見的關鍵字
├─PHP教程 7.7.2 static關鍵字的使用1
├─PHP教程 7.7.3 static關鍵字的使用2
├─PHP教程 7.7.4 單態(單例、單件)設計模式
├─PHP教程 7.7.5 const關鍵字
├─PHP教程 7.7.6 魔術方法__toString()
├─PHP教程 7.7.7 魔術方法__clone()
├─PHP教程 7.7.8 魔術方法__call()
├─PHP教程 7.7.9 對象串列化(序列化)1
├─PHP教程 7.7.10 對象串列化(序列化)2
├─PHP教程 7.7.11 PHP數組的串列化(JSON格式)
├─PHP教程 7.7.12 魔術方法__set_state()
├─PHP教程 7.7.13 PHP 5.3以後新增的魔術方法
├─PHP教程 7.7.14 自動載入類__autoload()
├─PHP教程 7.8.1 PHP抽象方法和抽象類1
├─PHP教程 7.8.2 PHP抽象方法和抽象類2
├─PHP教程 7.8.3 PHP面向對象介面技術
├─PHP教程 7.8.4 PHP介面應用的一些細節
├─PHP教程 7.8.5 PHP面象對象的特性多態
├─PHP教程 7.9.1 PHP多態的應用實例
├─PHP教程 7.10.1 PHP圖形計算器需求分析
├─PHP教程 7.10.2 PHP圖形計算器功能設計
├─PHP教程 7.10.3 PHP圖形計算器主程序的實現
├─PHP教程 7.10.4 PHP圖形計算器主程序的步驟及代碼
├─PHP教程 7.10.5 PHP圖形計算器主程序完成檢驗
├─PHP教程 7.11.1 與類有關的魔術常量和函數
├─PHP教程 7.12.1 PHP命名空間的概述
├─PHP教程 7.12.2 PHP定義子命名空間
├─PHP教程 7.12.3 PHP在同一文件中定義多個命名空間
├─PHP教程 7.12.4 PHP命名空間和動態語言特徵
└─PHP教程 7.12.5 PHP使用命名空間:別名導入
├─PHP視頻教程 8 PHP字元串處理
│ ├─PHP教程 8.1.1 字元串的處理方式1
│ ├─PHP教程 8.1.2 字元串的處理方式2
│ ├─PHP教程 8.2.1 常用的字元串輸出函數1
│ ├─PHP教程 8.2.2 常用的字元串輸出函數2
│ ├─PHP教程 8.3.1 去除空格和字元串填補及大小寫轉換函數
│ ├─PHP教程 8.3.2 和HTML標簽相關的字元串格式化函數
│ ├─PHP教程 8.3.3 字元串格式化函數
│ ├─PHP教程 8.4.1 字元串比較函數
│ ├─PHP教程 8.5.1 字元串面試題1
│ ├─PHP教程 8.5.2 字元串面試題2
│ └─PHP教程 8.5.3 字元串面試題3
├─PHP視頻教程 9 PHP正則表達式
│ ├─PHP教程 9.1.1 選擇PHP正則表達式的處理函數庫
│ ├─PHP教程 9.2.1 正則表達式語法介紹1
│ ├─PHP教程 9.2.2 正則表達式語法介紹2
│ ├─PHP教程 9.2.3 正則表達式中的原子1
│ ├─PHP教程 9.2.4 正則表達式中的原子2
│ ├─PHP教程 9.2.5 正則表達式中的元字元1
│ ├─PHP教程 9.2.6 正則表達式中的元字元2
│ ├─PHP教程 9.2.7 正則表達式中元字元中的小括弧
│ ├─PHP教程 9.2.8 模式修正符(單個字元)1
│ ├─PHP教程 9.2.9 模式修正符(單個字元)2
│ ├─PHP教程 9.3.1 字元串的匹配與查找之(strstr、strpos、substr)
│ ├─PHP教程 9.3.2 字元串的匹配與查找之(preg_match)
│ ├─PHP教程 9.3.3 字元串的匹配與查找之(preg_match_all與preg_grep)
│ ├─PHP教程 9.3.4 字元串的分割與連接(explode、implode join、preg_split)
│ ├─PHP教程 9.3.5 字元串的替換(str_replace)
│ ├─PHP教程 9.3.6 字元串的替換(preg_replace)1
│ ├─PHP教程 9.3.7 字元串的替換(preg_replace)2
│ ├─PHP教程 9.3.8 字元串中正則的其它函數
│ ├─PHP教程 9.2.10 如何自己編寫正則表達式(url)
│ └─PHP教程 9.2.11 編寫email正則表達式
├─PHP視頻教程 10 PHP的錯誤和異常處理
│ ├─PHP教程 10.1.1 錯誤報告及設置級別
│ ├─PHP教程 10.1.2 自定義PHP的錯誤報告處理方式
│ ├─PHP教程 10.1.3 設置錯誤日誌
│ ├─PHP教程 10.2.1 PHP異常處理1
│ ├─PHP教程 10.2.2 PHP異常處理2
│ ├─PHP教程 10.2.3 自定義異常類
│ └─PHP教程 10.2.4 捕獲多個異常
├─PHP視頻教程 11 PHP日期時間
│ ├─PHP教程 11.1.1 PHP中應用日期和時間1
│ ├─PHP教程 11.1.2 PHP中應用日期和時間2
│ └─PHP教程 11.1.3 PHP日歷核心程序編寫
├─PHP視頻教程 12 PHP文件系統處理
│ ├─PHP教程 12.1.1 文件系統概述
│ ├─PHP教程 12.1.2 文件的屬性
│ ├─PHP教程 12.2.1 解析目錄路徑
│ ├─PHP教程 12.2.2 遍歷目錄
│ ├─PHP教程 12.2.3 統計目錄中的個數和大小
│ ├─PHP教程 12.2.4 建立與刪除目錄
│ ├─PHP教程 12.2.5 復制、移動目錄
│ ├─PHP教程 12.3.1 文件的一些基本操作函數
│ ├─PHP教程 12.3.2 文件的打開與關閉
│ ├─PHP教程 12.3.3 文件的內容操作
│ ├─PHP教程 12.3.4 簡單留言版
│ ├─PHP教程 12.3.5 文件的鎖定機制
│ ├─PHP教程 12.4.1 文件上傳的設置
│ ├─PHP教程 12.4.2 文件上傳的處理
│ ├─PHP教程 12.4.3 處理多個文件上傳
│ ├─PHP教程 12.4.4 文件上傳類
│ └─PHP教程 12.4.5 文件下載
─PHP視頻教程 13 GD庫
│ ├─PHP教程 13.1.1 PHP中GD庫的使用
│ ├─PHP教程 13.1.2 使用GD庫畫圖
│ ├─PHP教程 13.1.3 繪制各種圖形
│ ├─PHP教程 13.1.4 畫時鍾
│ ├─PHP教程 13.2.1 設計驗證碼類
│ ├─PHP教程 13.2.2 驗證碼類的編寫1
│ ├─PHP教程 13.2.3 驗證碼類的編寫2
│ ├─PHP教程 13.2.4 驗證碼類完善
│ ├─PHP教程 13.3.1 圖片背景管理
│ ├─PHP教程 13.3.2 圖片的縮放和剪切
│ ├─PHP教程 13.3.3 添加圖片水印
│ ├─PHP教程 13.3.4 圖片的旋轉和翻轉
│ └─PHP教程 13.3.5 圖像處理類
├─PHP視頻教程 14 資料庫
│ ├─PHP教程 14.1.1 復習資料庫
│ ├─PHP教程 14.1.2 phpMyAdmin的使用
│ ├─PHP教程 14.1.3 php訪問MySQL
│ ├─PHP教程 14.1.4 在PHP腳本中操作MySQL資料庫1
│ ├─PHP教程 14.1.5 在PHP腳本中操作MySQL資料庫2
│ ├─PHP教程 14.1.6 在PHP腳本中操作MySQL資料庫3
│ ├─PHP教程 14.1.7 在PHP腳本中操作MySQL資料庫4
│ ├─PHP教程 14.2.1 分頁需求分析
│ ├─PHP教程 14.2.2 分頁類中分頁的編寫
│ ├─PHP教程 14.2.3 分頁類中列表頁的編寫
│ ├─PHP教程 14.2.4 分頁類的優化
│ ├─PHP教程 14.2.5 《細說PHP》分頁類的使用
│ ├─PHP教程 14.3.1 圖書管理需求分析
│ ├─PHP教程 14.3.2 添加圖書
│ ├─PHP教程 14.3.3 圖書列表
│ ├─PHP教程 14.3.4 修改圖書
│ ├─PHP教程 14.3.5 刪除圖書
│ ├─PHP教程 14.3.6 上傳圖書封面
│ ├─PHP教程 14.3.7 修改圖書封面
│ ├─PHP教程 14.3.8 圖書列表分頁
│ └─PHP教程 14.3.9 多搜索加分頁
├─PHP視頻教程 15 PDO
│ ├─PHP教程 15.1.1 資料庫抽象層PDO
│ ├─PHP教程 15.1.2 創建PDO對象
│ ├─PHP教程 15.1.3 PDO與連接有關的選項
│ ├─PHP教程 15.1.4 PDO的錯誤處理模式
│ ├─PHP教程 15.1.5 使用PDO執行SQL語句
│ ├─PHP教程 15.1.6 PDO事務處理
│ ├─PHP教程 15.2.1 PDO對預處理語句的支持
│ ├─PHP教程 15.2.2 使用PDO准備語句並執行語句1
│ ├─PHP教程 15.2.3 使用PDO准備語句並執行語句2
│ ├─PHP教程 15.2.4 PDO的預處理查詢1
│ ├─PHP教程 15.2.5 PDO的預處理查詢2
│ └─PHP教程 15.2.6 用PDO存取大數據對象
├─PHP視頻教程 16 memcache管理與應用
│ ├─PHP教程 16.1.1 memcache應用說明
│ ├─PHP教程 16.1.2 memcache工作原理
│ ├─PHP教程 16.1.3 memcache的安裝
│ ├─PHP教程 16.1.4 Memcache的常用命令操作
│ ├─PHP教程 16.1.5 php的memcache功能擴展模塊安裝
│ ├─PHP教程 16.1.6 PHP中操作memcache
│ ├─PHP教程 16.1.7 在PHP中設置分布式memcache存取1
│ └─PHP教程 16.1.8 在PHP中設置分布式memcache存取2
─PHP視頻教程 17 PHP會話控制
├─PHP教程 17.1.1 http協議和web本質1
├─PHP教程 17.1.2 http協議和web本質2
├─PHP教程 17.1.3 http協議和web本質3
├─PHP教程 17.2.1 會話控制概述
├─PHP教程 17.3.1 會話控制之Cookie概述
├─PHP教程 17.3.2 Cookie的操作
├─PHP教程 17.3.3 Cookie的應用1
├─PHP教程 17.3.4 Cookie的應用2
├─PHP教程 17.4.1 會話控制session的工作機制
├─PHP教程 17.4.2 session的應用
├─PHP教程 17.4.3 session的配置選項
├─PHP教程 17.4.4 sessoion自動垃圾回收機制
├─PHP教程 17.4.5 基於url傳遞session的id
├─PHP教程 17.4.6 郵件系統實例1
├─PHP教程 17.4.7 郵件系統實例2
├─PHP教程 17.5.1 自定義session的存儲機制
├─PHP教程 17.5.2 如何自定義session的處理方式1
├─PHP教程 17.5.3 如何自定義session的處理方式2
├─PHP教程 17.5.4 自定義session類
├─PHP教程 17.5.5 使用資料庫來存儲session信息1
├─PHP教程 17.5.6 使用資料庫來存儲session信息2
├─PHP教程 17.5.7 使用資料庫來存儲session信息3
└─PHP教程 17.5.8 使用memcache來存儲session
PHP視頻教程 18 PHP的模板引擎Smarty
├─PHP教程 18.1.1 什麼是模板引擎
├─PHP教程 18.2.1 自定義模板引擎類1
├─PHP教程 18.2.2 自定義模板引擎類2
├─PHP教程 18.2.3 使用自定義的模板引擎
├─PHP教程 18.3.1 選擇Smarty模板引擎
├─PHP教程 18.3.2 Smarty的安裝初使化示例1
├─PHP教程 18.3.3 Smarty的安裝初使化示例2
├─PHP教程 18.3.4 需要學習Smarty的哪兒些內容
├─PHP教程 18.4.1 模板中的變數應用
├─PHP教程 18.4.2 從配置文件讀取變數
├─PHP教程 18.4.3 在模板中使用保留變數
├─PHP教程 18.5.1 變數調節(修改)器
├─PHP教程 18.5.2 變數調節(修改)器和應用
├─PHP教程 18.5.3 使用registerPlugin來注冊變數調節器
├─PHP教程 18.5.4 使用插件來注冊變數調節器
├─PHP教程 18.5.5 smarty中的函數
├─PHP教程 18.5.6 smarty中的內置函數
├─PHP教程 18.6.1 smarty中自定義函數
├─PHP教程 18.6.2 smarty中自定義函數插件實例
├─PHP教程 18.7.1 smarty中內置函數的使用
├─PHP教程 18.7.2 smarty變數聲明
├─PHP教程 18.7.3 smarty流程式控制制
├─PHP教程 18.7.4 smarty中for、while循環
├─PHP教程 18.7.5 smarty中{function}標簽
├─PHP教程 18.7.6 smarty2中的foreach
├─PHP教程 18.7.7 smarty3中的foreach
├─PHP教程 18.7.8 smarty中的section
├─PHP教程 18.8.1 smarty模板繼承
├─PHP教程 18.9.1 頁面靜態化加分頁原理
└─PHP教程 18.9.2 在smarty中控制緩存
Ⅲ php驗證碼怎麼在前from表單驗證呢請大師請教,謝謝
把驗證碼的值當作一個參數存在html表單/ajax表單中(如,以vcode命名增加一個hiden text);
在控制器接收表單的邏輯,接收$_POST['vcode'],判斷$_POST['vcode']是不是生成的驗證碼,是,跳過,不是返回驗證碼錯誤到表單頁面;
其實驗證就類似介面一樣,雙方約定規則,統一密鑰,而驗證只是你自己去驗證罷了
Ⅳ 如何用PHP生成驗證碼
PHP生成驗證碼的原理:使用PHP的GD庫,生成一張帶驗證碼的圖片,並將驗證碼保存在Session中。PHP生成驗證碼的大致流程有:
1、產生一張png的圖片;
2、為圖片設置背景色;
3、設置字體顏色和樣式;
4、產生4位數的隨機的驗證碼;
5、把產生的每個字元調整旋轉角度和位置畫到png圖片上;
6、加入噪點和干擾線防止注冊機器分析原圖片來惡意破解驗證碼;
7、輸出圖片;
8、釋放圖片所佔內存。
session_start();
getCode(4,60,20);
functiongetCode($num,$w,$h){
$code="";
for($i=0;$i<$num;$i++){
$code.=rand(0,9);
}
//4位驗證碼也可以用rand(1000,9999)直接生成
//將生成的驗證碼寫入session,備驗證時用
$_SESSION["helloweba_num"]=$code;
//創建圖片,定義顏色值
header("Content-type:image/PNG");
$im=imagecreate($w,$h);
$black=imagecolorallocate($im,0,0,0);
$gray=imagecolorallocate($im,200,200,200);
$bgcolor=imagecolorallocate($im,255,255,255);
//填充背景
imagefill($im,0,0,$gray);
//畫邊框
imagerectangle($im,0,0,$w-1,$h-1,$black);
//隨機繪制兩條虛線,起干擾作用
$style=array($black,$black,$black,$black,$black,
$gray,$gray,$gray,$gray,$gray
);
imagesetstyle($im,$style);
$y1=rand(0,$h);
$y2=rand(0,$h);
$y3=rand(0,$h);
$y4=rand(0,$h);
imageline($im,0,$y1,$w,$y3,IMG_COLOR_STYLED);
imageline($im,0,$y2,$w,$y4,IMG_COLOR_STYLED);
//在畫布上隨機生成大量黑點,起干擾作用;
for($i=0;$i<80;$i++){
imagesetpixel($im,rand(0,$w),rand(0,$h),$black);
}
//將數字隨機顯示在畫布上,字元的水平間距和位置都按一定波動范圍隨機生成
$strx=rand(3,8);
for($i=0;$i<$num;$i++){
$strpos=rand(1,6);
imagestring($im,5,$strx,$strpos,substr($code,$i,1),$black);
$strx+=rand(8,12);
}
imagepng($im);//輸出圖片
imagedestroy($im);//釋放圖片所佔內存
}
Ⅳ PHP 繪制網站登錄首頁圖片驗證碼
幾乎所有的網站登錄頁都會有驗證碼,驗證碼是一種安全保護機制,在注冊時要求必須有人工操作進行驗證,用於防止垃圾注冊機大量注冊用戶賬號佔用伺服器內存從而使伺服器癱瘓。
圖片驗證碼的實現十分簡單。首先從指定字元集合中隨機抽取固定數目的字元,以一種不規則的方法畫在畫布上,再適當添加一些干擾點和干擾元素,最後將圖片輸出,一張嶄新的驗證碼就完成了。
先給大家展示下生成的驗證碼:
點擊刷新:
如果大家對實現效果非常滿意,請繼續往下看。
前端代碼如下:
<!DOCTYPE
html>
<html>
<head>
<meta
http-equiv="content-type"
content="text/html;charset=utf-8">
<title>This
is
a
test!</title>
<link
rel="stylesheet"
type="text/css"
href="css/bootstrap.min.css">
</head>
<body>
<form
name="form">
<input
type="text"
placeholder="賬號"/><br/>
<input
type="password"
placeholder="密碼"/><br/>
<input
type="text"
placeholder="驗證碼"/>
<img
id="verImg"
src="libs/verification.php"/>
<a
href="#"
class="change"
onclick="changeVer()">點擊刷新</a><br/>
<input
type="submit"
value="登錄"/>
</form>
<script
type="text/javascript">
//刷新驗證碼
function
changeVer(){
document.getElementById("verImg").src="libs/verification.php?tmp="+Math.random();
}
</script>
</body>
</html>
php腳本文件驗證碼的代碼如下:
<?php
session_start();
//開啟session記錄驗證碼數據
vCode(4,
15);//設置驗證碼的字元個數和圖片基礎寬度
//vCode
字元數目,字體大小,圖片寬度、高度
function
vCode($num
=
4,
$size
=
20,
$width
=
0,
$height
=
0)
{
!$width
&&
$width
=
$num
*
$size
*
4
/
5
+
15;
!$height
&&
$height
=
$size
+
10;
//設置驗證碼字元集合
$str
=
"";
//保存獲取的驗證碼
$code
=
''
//隨機選取字元
for
($i
=
0;
$i
<
$num;
$i++)
{
$code
.=
$str[mt_rand(0,
strlen($str)-1)];
}
//創建驗證碼畫布
$im
=
imagecreatetruecolor($width,
$height);
//背景色
$back_color
=
imagecolorallocate($im,
mt_rand(0,100),mt_rand(0,100),
mt_rand(0,100));
//文本色
$text_color
=
imagecolorallocate($im,
mt_rand(100,
255),
mt_rand(100,
255),
mt_rand(100,
255));
imagefilledrectangle($im,
0,
0,
$width,
$height,
$back_color);
//
畫干擾線
for($i
=
0;$i
<
5;$i++)
{
$font_color
=
imagecolorallocate($im,
mt_rand(0,
255),
mt_rand(0,
255),
mt_rand(0,
255));
imagearc($im,
mt_rand(-
$width,
$width),
mt_rand(-
$height,
$height),
mt_rand(30,
$width
*
2),
mt_rand(20,
$height
*
2),
mt_rand(0,
360),
mt_rand(0,
360),
$font_color);
}
//
畫干擾點
for($i
=
0;$i
<
50;$i++)
{
$font_color
=
imagecolorallocate($im,
mt_rand(0,
255),
mt_rand(0,
255),
mt_rand(0,
255));
imagesetpixel($im,
mt_rand(0,
$width),
mt_rand(0,
$height),
$font_color);
}
//隨機旋轉角度數組
$array=array(5,4,3,2,1,0,-1,-2,-3,-4,-5);
//
輸出驗證碼
//
imagefttext(image,
size,
angle,
x,
y,
color,
fontfile,
text)
@imagefttext($im,
$size
,
array_rand($array),
12,
$size
+
6,
$text_color,
'c:WINDOWSFontssimsun.ttc',
$code);
$_SESSION["VerifyCode"]=$code;
//no-cache在每次請求時都會訪問伺服器
//max-age在請求1s後再次請求會再次訪問伺服器,must-revalidate則第一發送請求會訪問伺服器,之後不會再訪問伺服器
//
header("Cache-Control:
max-age=1,
s-maxage=1,
no-cache,
must-revalidate");
header("Cache-Control:
no-cache");
header("Content-type:
image/png;charset=gb2312");
//將圖片轉化為png格式
imagepng($im);
imagedestroy($im);
}
?>
好了,關於小編給大家介紹的php繪制圖片驗證就給大家介紹這么多,希望對大家有所幫助!