91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP 圖像處理與SESSION制作

發布時間:2021-06-04 16:12:33 來源:億速云 閱讀:123 作者:Leah 欄目:開發技術

PHP 圖像處理與SESSION制作?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

驗證碼的實現

首先我們要清楚,無論是做什么東西,在做之前一定要有思路,譬如這個驗證碼里他有些什么,為了實現它我們該做些什么,怎么樣去做。

這里我例舉出幾個點。

1.驗證碼肯定要有內容。
2.驗證碼里肯定要有干擾信息,就譬如,線條干擾和點點干擾。

那么為了實現他們我們該如何做呢?

第一步,創建一個名為captcha.php的文件

在里面輸入

<?php
session_start();//開啟會話
header("Content-type:image/png");//定義為圖片
$im = imagecreatetruecolor(100,30);//創建一個畫布的大小
$color = imagecolorallocate($im, 255, 255, 255);//填充背景顏色
imagefill($im,0,0,$color);//填充$color顏色于$im畫板區域從左上角0,0開始
$content = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";//驗證碼內容
$fontsize = "6";//字體大小
$ragcha = "";//聲明一個空變量,接受驗證碼內容并保存

這個時候,驗證碼的一些基本東西我們都完成了,定義了驗證碼的寬高,背景色驗證碼內容,驗證碼字體大小,和一個接受驗證碼的變量,就該做第二步了。

第二步,獲取驗證碼內容

for ($i=0; $i < 4; $i++) { 
 //截取字符串
 $char = substr($content,rand(0,strlen($content)-1),1);
 //把得到的內容輸入到ragcha里
 $ragcha = $ragcha.$char;
 //設置x軸與y軸的坐標
 $x = $i*(100/4) + rand(5,15);
 $y = rand(5,10);
 //設置驗證碼內容顏色
 $fontcolor = imagecolorallocate($im,rand(0,120),rand(0,120),rand(0,120));
 //輸出
 imagestring($im, $fontsize, $x, $y, $char, $fontcolor);
}
//保證驗證碼內容不丟失
$_SESSION["ragcha"] = $ragcha;

在這里我們設置了$i的變量不能大于四,然后用他乘以(100/4),保證他的的值不會大過100,再加上rand函數里隨機抽取5-15里的數值,使其的x軸坐標范圍保證在(5-90)之間,y軸的坐標保證在(5-10)之間,使其大概率的保證了內容顯示的范圍居中

第三步,設置干擾因素

我們要明白,在驗證碼里有什么干擾因素,再想辦法把它呈現出來。如下

//設置干擾因素
//1.畫線條
for ($g=0; $g < 3; $g++) {
 //設置線條顏色
 $line = imagecolorallocate($im, rand(50,100), rand(50,100), rand(50,100));
 //輸出線條
 imageline($im,rand(0,99),rand(0,19),rand(0,99),rand(0,19), $line);
}
//2.給背景加點點
for ($r=0; $r < 300; $r++) {
 //設置點點顏色
 $point = imagecolorallocate($im, rand(20,180), rand(20,180), rand(20,180));
 //輸出點點
 imagesetpixel($im, rand(0,100), rand(0,30), $point);
}
imagepng($im);//輸出整個圖片

關于PHP 圖像處理與SESSION制作問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿克| 宣化县| 香港| 革吉县| 江城| 桑植县| 永春县| 图们市| 绥中县| 扎囊县| 灵璧县| 银川市| 濉溪县| 灵川县| 广灵县| 丰城市| 利川市| 遵义市| 古浪县| 通化县| 乌兰浩特市| 福海县| 宣武区| 定边县| 乐山市| 博爱县| 珲春市| 高青县| 宣化县| 仁怀市| 庆安县| 丹凤县| 江都市| 都兰县| 鄂尔多斯市| 砚山县| 禹州市| 米脂县| 宝应县| 惠来县| 喀什市|