php產生SessionID和圖片校驗碼的想法和實現
做一個後台登陸需要用到校驗碼,前台的用戶追蹤需要用到SessionID,當然,預設的PHP開啟了Session以後就有了一個SessionID,但是我需要自己的,並且能夠存儲進數據庫,那麼我就嘗試了一下,構造了以下的函數。
/****** 產生Session ID ******/
基本的思路: 是把當前微秒的時間獲取, 然後產生以個隨機數字, 把隨機數字和當前時間相加後加密一下, 最後再截取需要的長度
/*
函數名稱:create_sess_id()
函數作用:產生以個隨機的會話ID
參數:$len: 需要會話字串的長度,預設為32位,不要低於16位元
傳回值:傳回會話ID
函數heiyeluren
*/
function create_sess_id($len=32)
{
// 校驗提交的長度是否合法
if( !is_numeric($len) || ($len>32) || ($len// 取得目前時間的微秒
list($u, $s) = explode(' ', microtime());
$time = (float)$u (float)$s ;
// 產生一個隨機數
$rand_num = rand(100000, 999999);
$rand_num = rand($rand_num, $time);
mt_srand($rand_num);
$rand_num = mt_rand(產生SessionID
$sess_id = md5( md5($time). md5($rand_num) );
// 截取指定需要長度的SessionID
$sess_id = substr($sess_id, 0, $len);
$sess_id = substr($sess_id, 0, $len);
}
/****** 產生校驗碼 ******/
思路: 這個思路比較簡單,因為考慮獨一無二和隨機性,我們的校驗碼就Session ID裡面截取一段字符串就可以了,因為我們的SessionID是充分考慮了獨一無二的。
/*
函數名稱:create_check_code()
函數作用:產生以個隨機的校驗碼
參數:$len: 需要校驗碼的長度, 請不要長於16位元,缺省為4位
返回值位元
返回值:傳回指定長度的校驗碼
函數heiyeluren
*/
function create_check_code($len=4)
{
if ( !is_numeric($len) || ($len>6) || ($len
$check_code = substr(create_sess_id(), 16, $len );
return strtoupper($check_code);
}
/****的PHP圖像編程的東西了,我作的圖片和簡單。
/*
函數名稱:create_check_image()
函數作用:產生一個校驗碼的圖片
參數:$check_code: 校驗碼字串,一般由create_check_code()函數來取得
傳回值:傳回該圖片
函數heiyeluren
*/
function create_check_image( $check_code )
{
// 產生圖片
$im = imagecreate(65,22);
$black = ImageColorAllocate($im);顏色
$white = ImageColorAllocate($im, 255,255,255); // 前景顏色
$gray = ImageColorAllocate($im, 200,200,200);
/3fill($im,68,30,0001 四位將整數驗證碼繪入圖片
imagestring($im, 5, 8, 3, $check_code, $white);
// 加入乾擾像素
for($i=0;$i{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()p , rand()0 , $randcolor);
}
/輸出圖片
Header("Content-type: image/PNG");
ImagePNG($im);
ImageDestroy($im);
}
這裡我們要注意,引用create_check_image(}
這裡我們要注意,引用create_check_image()單獨的檔案裡,因為輸出檔案頭的時候輸出的格式是影像格式,夾雜其他內容,會導致圖片無法顯示。另外,圖片成生函數,你是可以改變的,例如你想改顏色,那麼你就把前景色和背景色的生成位置換一下,那麼顏色就不一樣了,同時也要把校驗碼的顏色換了,不然背景和校驗碼都是黑色就顯示不出來了。 轉載請註明來源:php產生SessionID和圖片校驗碼的想法與實作

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。
