生成隨機線。 <\/p>\n
現(xiàn)在,我們實際上是從使驗證碼的失真部分開始。在PHP中,線從起點(x1,y1)到終點(x2,y2)生成?,F(xiàn)在,當我們希望線條觸摸盒子的兩端時,我們將保持 > y坐標是rand()*p給出的,因為這是我們盒子的高度,並且始終將返回50以下的值。您可以使用rand(0,50)。它們將產(chǎn)生相同的輸出範圍。 <\/p>\n <\/p>\n\n 生成隨機點。 <\/p>\n 隨機點將以與隨機線相同的方式生成。使用的函數(shù)是ImagesetPixel()。此函數(shù)採用將點將點放在框中的坐標值的值。 >我們將隨機指向字符串中的一個位置(其中包含在下層和高層中的字母),並將其分配給變量$ letter<\/p>>\n 放入循環(huán)時,看起來像<\/p>\n 我們將解釋行<\/p>>\n 在下一節(jié)中。 <\/p>\n 函數(shù)Imagestring()在我們的圖像中寫入文本。它有6個參數(shù):<\/p>\n X坐標的計算是通過檢查完成的。大概,這些字母的間距約為35個像素(5($ i*30)),其中$ i = 0,1,2,3,4,5,6。這是因為如果我們將這個值保持在15-20px左右,則可能會有兩個字母重疊。如果該值超過40px,則完全不適合盒子。\n<\/p>這將生成6個字母驗證碼文本。我們始終可以通過更改由於簡單性(例如顏色,Y-Coordine等)來創(chuàng)造更多的隨機性,例如\n 最終的驗證碼看起來像這樣<\/p>>\n <\/p> \n<\/p>每次您刷新頁面時,在驗證碼中寫的文本都會更改。 \n可以通過使用像素或更改顏色或大小來創(chuàng)建設(shè)計來實現(xiàn)更多隨機性。 \n $ word。 = $ letter; - 串聯(lián)操作員。用於一個接一個地附加所有單個字母,生成6個字母的單詞。 <\/p>\n $ _ session ['catcha_string'] = $ word;我們的驗證碼字符串存儲在會話變量中,該變量將用於驗證目的。 <\/p>>\n\n<\/y1><\/x1><\/p>\n
imageLine()函數(shù)將x1,x2,y1,y2坐在該順序中作為參數(shù),除了線的圖像參考和顏色。線色已被分配,就像在上一步中分配了背景顏色一樣。 <\/h3>\n
$background_color = imagecolorallocate($image, 255, 255, 255); \n<\/span>imagefilledrectangle($image,0,0,200,50,$background_color);<\/span><\/pre>\n
>\n<\/p>\n
>通過使用rand()* 0隨機生成X坐標,因為這是我們盒子的寬度,這將始終返回200歲以下的值。您可以使用RAND(0,200)。它們將產(chǎn)生相同的輸出範圍。 y坐標的生成如線步中。<\/h3>\n
<\/p>\n
生成隨機文本<\/h3>\n
<\/span>session_start();\n<\/span><\/span>?><\/span>\n<\/span>\n
国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂
style=\"background-color:#ddd; <\/span>\"<\/span><\/span>><\/span>\n<\/span>\n <\/span> create_image();\n<\/span><\/span> display();\n<\/span><\/span> \/***** definition of functions *****\/\n<\/span><\/span> function display()\n<\/span><\/span> {\n<\/span><\/span> ?><\/span>\n<\/span>\n ><\/span>TYPE THE TEXT YOU SEE IN THE IMAGE<\/h3<\/span>><\/span>\n<\/span> ><\/span>This is just to check if you are a robot<\/b<\/span>><\/span>\n<\/span>\n
src=\"image.png\"<\/span>><\/span>\n<\/span> <\/div<\/span>><\/span>\n<\/span> \/\/div1 ends\n <\/div<\/span>><\/span> \/\/div2 ends\n<\/span>\n <\/span> }\n<\/span><\/span>\n<\/span> function create_image()\n<\/span><\/span> {\n<\/span><\/span> $image = imagecreatetruecolor(200, 50);\n<\/span><\/span> imagepng($image, \"image.png\");\n<\/span><\/span> }\n<\/span><\/span>\n<\/span> ?><\/span>\n<\/span> <\/body<\/span>><\/span>\n<\/span><\/span>?><\/span><\/span><\/pre>\n
$background_color = imagecolorallocate($image, 255, 255, 255); \n<\/span>imagefilledrectangle($image,0,0,200,50,$background_color);<\/span><\/pre>\n
$line_color = imagecolorallocate($image, 64,64,64); \n<\/span>for($i=0;$i<10;$i++) {\n<\/span> imageline($image,0,rand()%50,200,rand()%50,$line_color);\n<\/span>}<\/span><\/pre>\n
\n
>\n<\/p>驗證
>在這裡採取用戶的響應(yīng),然後在處理後,他\/她會收到答復(fù)。首先,使用輸入文本框和提交按鈕製作一個簡單的表單。根據(jù)複雜的Web應(yīng)用程序的要求,可以有許多方法來處理驗證碼。但是,出於此示例,請保持簡單,我們將在同一頁面上對其進行處理。 <\/p>\n>在上一個代碼段中未解釋的兩行現(xiàn)在開始發(fā)揮作用:
\n
<\/span>session_start();\n<\/span><\/span>?><\/span>\n<\/span>\n
><\/span>TYPE THE TEXT YOU SEE IN THE IMAGE<\/h3<\/span>><\/span>\n<\/span> ><\/span>This is just to check if you are a robot<\/b<\/span>><\/span>\n<\/span>\n