目錄
php如何实现验证码
首頁 後端開發 php教程 php如何实现验证码_PHP教程

php如何实现验证码_PHP教程

Jul 12, 2016 am 09:07 AM
php

php如何实现验证码

验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。

\


验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。好吧,其实是没有事情干,但是又不想浪费时间,所 以学习了下php实现验证码。正所谓,技多不压身。而且,也可以封装成一个函数,以后使用的时候也是很方便的,当然现在未封装。

现在来说说简单的纯数字验证码吧。

如果是初学者,建议按照我代码的注释 //数字  一步步来。最简单的方法,还是把整个代码复制走了。

新建一个captcha.php:

<ol class="dp-c"><li class="alt"><span><span>php </span></span></li><li><span>    <span class="comment">//10>设置session,必须处于脚本最顶部</span><span> </span></span></li><li class="alt"><span>    session_start(); </span></li><li><span> </span></li><li class="alt"><span>    <span class="vars">$image</span><span> = imagecreatetruecolor(100, 30);        </span><span class="comment">//1>设置验证码图片大小的函数</span><span> </span></span></li><li><span>    <span class="comment">//5>设置验证码颜色 imagecolorallocate(int im, int red, int green, int blue);</span><span> </span></span></li><li class="alt"><span>    <span class="vars">$bgcolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>,255,255,255); </span><span class="comment">//#ffffff</span><span> </span></span></li><li><span>    <span class="comment">//6>区域填充 int imagefill(int im, int x, int y, int col)  (x,y) 所在的区域着色,col 表示欲涂上的颜色</span><span> </span></span></li><li class="alt"><span>    imagefill(<span class="vars">$image</span><span>, 0, 0, </span><span class="vars">$bgcolor</span><span>); </span></span></li><li><span>    <span class="comment">//10>设置变量</span><span> </span></span></li><li class="alt"><span>    <span class="vars">$captcha_code</span><span> = </span><span class="string">""</span><span>; </span></span></li><li><span>    <span class="comment">//7>生成随机数字</span><span> </span></span></li><li class="alt"><span>    <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span><4;</span><span class="vars">$i</span><span>++){ </span></span></li><li><span>        <span class="comment">//设置字体大小</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$fontsize</span><span> = 6;         </span></span></li><li><span>        <span class="comment">//设置字体颜色,随机颜色</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$fontcolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>, rand(0,120),rand(0,120), rand(0,120));            </span><span class="comment">//0-120深颜色</span><span> </span></span></li><li><span>        <span class="comment">//设置数字</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$fontcontent</span><span> = rand(0,9); </span></span></li><li><span>        <span class="comment">//10>.=连续定义变量</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$captcha_code</span><span> .= </span><span class="vars">$fontcontent</span><span>;     </span></span></li><li><span>        <span class="comment">//设置坐标</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$x</span><span> = (</span><span class="vars">$i</span><span>*100/4)+rand(5,10); </span></span></li><li><span>        <span class="vars">$y</span><span> = rand(5,10); </span></span></li><li class="alt"><span> </span></li><li><span>        imagestring(<span class="vars">$image</span><span>,</span><span class="vars">$fontsize</span><span>,</span><span class="vars">$x</span><span>,</span><span class="vars">$y</span><span>,</span><span class="vars">$fontcontent</span><span>,</span><span class="vars">$fontcolor</span><span>); </span></span></li><li class="alt"><span>    } </span></li><li><span>    <span class="comment">//10>存到session</span><span> </span></span></li><li class="alt"><span>    <span class="vars">$_SESSION</span><span>[</span><span class="string">'authcode'</span><span>] = </span><span class="vars">$captcha_code</span><span>; </span></span></li><li><span>    <span class="comment">//8>增加干扰元素,设置雪花点</span><span> </span></span></li><li class="alt"><span>    <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span><200;</span><span class="vars">$i</span><span>++){ </span></span></li><li><span>        <span class="comment">//设置点的颜色,50-200颜色比数字浅,不干扰阅读</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$pointcolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>,rand(50,200), rand(50,200), rand(50,200));         </span></span></li><li><span>        <span class="comment">//imagesetpixel &mdash; 画一个单一像素</span><span> </span></span></li><li class="alt"><span>        imagesetpixel(<span class="vars">$image</span><span>, rand(1,99), rand(1,29), </span><span class="vars">$pointcolor</span><span>); </span></span></li><li><span>    } </span></li><li class="alt"><span>    <span class="comment">//9>增加干扰元素,设置横线</span><span> </span></span></li><li><span>    <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span><4;</span><span class="vars">$i</span><span>++){ </span></span></li><li class="alt"><span>        <span class="comment">//设置线的颜色</span><span> </span></span></li><li><span>        <span class="vars">$linecolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>,rand(80,220), rand(80,220),rand(80,220)); </span></span></li><li class="alt"><span>        <span class="comment">//设置线,两点一线</span><span> </span></span></li><li><span>        imageline(<span class="vars">$image</span><span>,rand(1,99), rand(1,29),rand(1,99), rand(1,29),</span><span class="vars">$linecolor</span><span>); </span></span></li><li class="alt"><span>    } </span></li><li><span> </span></li><li class="alt"><span>    <span class="comment">//2>设置头部,image/png</span><span> </span></span></li><li><span>    header(<span class="string">'Content-Type: image/png'</span><span>); </span></span></li><li class="alt"><span>    <span class="comment">//3>imagepng() 建立png图形函数</span><span> </span></span></li><li><span>    imagepng(<span class="vars">$image</span><span>); </span></span></li><li class="alt"><span>    <span class="comment">//4>imagedestroy() 结束图形函数  销毁$image</span><span> </span></span></li><li><span>    imagedestroy(<span class="vars">$image</span><span>); </span></span></li></ol>
登入後複製

接着就是静态页的代码了:index.html

<ol class="dp-c"><li class="alt"><span><span>doctype html> </span></span></li><li><span><html> </span></li><li class="alt"><span>    <head> </span></li><li><span>        <meta http-equiv=<span class="string">"Content-Type"</span><span> content=</span><span class="string">"text/html; charset=UTF-8"</span><span>> </span></span></li><li class="alt"><span>        <title>确认验证码title> </span></li><li><span>    head> </span></li><li class="alt"><span>    <body> </span></li><li><span>        <form method=<span class="string">"post"</span><span> action=</span><span class="string">"./form.php"</span><span>> </span></span></li><li class="alt"><span>            <p>验证码: <img  id=<span class="string" alt="php如何实现验证码_PHP教程" >"captcha_img"</span><span> border=</span><span class="string">'1'</span><span> src=</span><span class="string">'./captcha.php?r=echo rand(); ?>'</span><span> style=</span><span class="string">"width:100px; height:30px"</span><span> /> </span></span></li><li><span>                <a href=<span class="string">"javascript:void(0)"</span><span> onclick=</span><span class="string">"document.getElementById('captcha_img').src='./captcha.php?r='+Math.random()"</span><span>>换一个?a> </span></span></li><li class="alt"><span>            p> </span></li><li><span>            <P>请输入验证码:<input type=<span class="string">"text"</span><span> name=</span><span class="string">'authcode'</span><span> value=</span><span class="string">''</span><span>/>p> </span></span></li><li class="alt"><span>            <p><input type=<span class="string">'submit'</span><span> value=</span><span class="string">'提交'</span><span> style=</span><span class="string">'padding:6px 5px;'</span><span>/>p>     </span></span></li><li><span>    body> </span></li><li class="alt"><span>html> <br /></span></li></ol>
登入後複製

从index.html可以看到,提交的表单是到form.php的,所以还要有一个判断的form.php代码:

<ol class="dp-c"><li class="alt"><span><span>php </span></span></li><li><span>    header(<span class="string">"Content-Type:text/html;charset=utf-8"</span><span>);            </span><span class="comment">//设置头部信息</span><span> </span></span></li><li class="alt"><span>    <span class="comment">//isset()检测变量是否设置</span><span> </span></span></li><li><span>    <span class="keyword">if</span><span>(isset(</span><span class="vars">$_REQUEST</span><span>[</span><span class="string">'authcode'</span><span>])){ </span></span></li><li class="alt"><span>        session_start(); </span></li><li><span>        <span class="comment">//strtolower()小写函数</span><span> </span></span></li><li class="alt"><span>        <span class="keyword">if</span><span>(</span><span class="func">strtolower</span><span>(</span><span class="vars">$_REQUEST</span><span>[</span><span class="string">'authcode'</span><span>])== </span><span class="vars">$_SESSION</span><span>[</span><span class="string">'authcode'</span><span>]){ </span></span></li><li><span>            <span class="comment">//跳转页面</span><span> </span></span></li><li class="alt"><span>            <span class="func">echo</span><span> </span><span class="string">"<script language=\"javascript\">"</span><span>; </span></span></li><li><span>            <span class="func">echo</span><span> </span><span class="string">"document.location=\"./form.php\""</span><span>; </span></span></li><li class="alt"><span>            <span class="func">echo</span><span> </span><span class="string">"</script>"</span><span>; </span></span></li><li><span>        }<span class="keyword">else</span><span>{ </span></span></li><li class="alt"><span>            <span class="comment">//提示以及跳转页面</span><span> </span></span></li><li><span>            <span class="func">echo</span><span> </span><span class="string">"<script language=\"javascript\">"</span><span>; </span></span></li><li class="alt"><span>            <span class="func">echo</span><span> </span><span class="string">"alert('输入错误!');"</span><span>; </span></span></li><li><span>            <span class="func">echo</span><span> </span><span class="string">"document.location=\"./form.php\""</span><span>; </span></span></li><li class="alt"><span>            <span class="func">echo</span><span> </span><span class="string">"</script>"</span><span>; </span></span></li><li><span>        } </span></li><li class="alt"><span>        <span class="func">exit</span><span>(); </span></span></li><li><span>    } <br /></span></li></ol>
登入後複製

显示页面如下:

\

那么,纯数字的实现了,数字加英文的也应该不难了。要修改的代码 只是在 captcha.php//7>生成随机数字 修改成 //7>生成随机的字母和数字,如果你真的很可爱的就修改这几个字就认为可以实现的话,那么祝贺你,你永远保持快乐。脑残儿童欢乐多。

废话不多说了,拉代码吧。 

<ol class="dp-c"><li class="alt"><span><span>php </span></span></li><li><span>    <span class="comment">//10>设置session,必须处于脚本最顶部</span><span> </span></span></li><li class="alt"><span>    session_start(); </span></li><li><span> </span></li><li class="alt"><span>    <span class="vars">$image</span><span> = imagecreatetruecolor(100, 30);        </span><span class="comment">//1>设置验证码图片大小的函数</span><span> </span></span></li><li><span>    <span class="comment">//5>设置验证码颜色 imagecolorallocate(int im, int red, int green, int blue);</span><span> </span></span></li><li class="alt"><span>    <span class="vars">$bgcolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>,255,255,255); </span><span class="comment">//#ffffff</span><span> </span></span></li><li><span>    <span class="comment">//6>区域填充 int imagefill(int im, int x, int y, int col)  (x,y) 所在的区域着色,col 表示欲涂上的颜色</span><span> </span></span></li><li class="alt"><span>    imagefill(<span class="vars">$image</span><span>, 0, 0, </span><span class="vars">$bgcolor</span><span>); </span></span></li><li><span>    <span class="comment">//10>设置变量</span><span> </span></span></li><li class="alt"><span>    <span class="vars">$captcha_code</span><span> = </span><span class="string">""</span><span>; </span></span></li><li><span>    <span class="comment">//7>生成随机的字母和数字</span><span> </span></span></li><li class="alt"><span>    <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span><4;</span><span class="vars">$i</span><span>++){ </span></span></li><li><span>        <span class="comment">//设置字体大小</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$fontsize</span><span> = 8;         </span></span></li><li><span>        <span class="comment">//设置字体颜色,随机颜色</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$fontcolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>, rand(0,120),rand(0,120), rand(0,120));            </span><span class="comment">//0-120深颜色</span><span> </span></span></li><li><span>        <span class="comment">//设置需要随机取的值,去掉容易出错的值如0和o</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$data</span><span> =</span><span class="string">'abcdefghigkmnpqrstuvwxy3456789'</span><span>; </span></span></li><li><span>        <span class="comment">//取出值,字符串截取方法   strlen获取字符串长度</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$fontcontent</span><span> = </span><span class="func">substr</span><span>(</span><span class="vars">$data</span><span>, rand(0,</span><span class="func">strlen</span><span>(</span><span class="vars">$data</span><span>)),1); </span></span></li><li><span>        <span class="comment">//10>.=连续定义变量</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$captcha_code</span><span> .= </span><span class="vars">$fontcontent</span><span>;         </span></span></li><li><span>        <span class="comment">//设置坐标</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$x</span><span> = (</span><span class="vars">$i</span><span>*100/4)+rand(5,10); </span></span></li><li><span>        <span class="vars">$y</span><span> = rand(5,10); </span></span></li><li class="alt"><span> </span></li><li><span>        imagestring(<span class="vars">$image</span><span>,</span><span class="vars">$fontsize</span><span>,</span><span class="vars">$x</span><span>,</span><span class="vars">$y</span><span>,</span><span class="vars">$fontcontent</span><span>,</span><span class="vars">$fontcolor</span><span>); </span></span></li><li class="alt"><span>    } </span></li><li><span>    <span class="comment">//10>存到session</span><span> </span></span></li><li class="alt"><span>    <span class="vars">$_SESSION</span><span>[</span><span class="string">'authcode'</span><span>] = </span><span class="vars">$captcha_code</span><span>; </span></span></li><li><span>    <span class="comment">//8>增加干扰元素,设置雪花点</span><span> </span></span></li><li class="alt"><span>    <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span><200;</span><span class="vars">$i</span><span>++){ </span></span></li><li><span>        <span class="comment">//设置点的颜色,50-200颜色比数字浅,不干扰阅读</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$pointcolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>,rand(50,200), rand(50,200), rand(50,200));         </span></span></li><li><span>        <span class="comment">//imagesetpixel &mdash; 画一个单一像素</span><span> </span></span></li><li class="alt"><span>        imagesetpixel(<span class="vars">$image</span><span>, rand(1,99), rand(1,29), </span><span class="vars">$pointcolor</span><span>); </span></span></li><li><span>    } </span></li><li class="alt"><span>    <span class="comment">//9>增加干扰元素,设置横线</span><span> </span></span></li><li><span>    <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span><4;</span><span class="vars">$i</span><span>++){ </span></span></li><li class="alt"><span>        <span class="comment">//设置线的颜色</span><span> </span></span></li><li><span>        <span class="vars">$linecolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>,rand(80,220), rand(80,220),rand(80,220)); </span></span></li><li class="alt"><span>        <span class="comment">//设置线,两点一线</span><span> </span></span></li><li><span>        imageline(<span class="vars">$image</span><span>,rand(1,99), rand(1,29),rand(1,99), rand(1,29),</span><span class="vars">$linecolor</span><span>); </span></span></li><li class="alt"><span>    } </span></li><li><span> </span></li><li class="alt"><span>    <span class="comment">//2>设置头部,image/png</span><span> </span></span></li><li><span>    header(<span class="string">'Content-Type: image/png'</span><span>); </span></span></li><li class="alt"><span>    <span class="comment">//3>imagepng() 建立png图形函数</span><span> </span></span></li><li><span>    imagepng(<span class="vars">$image</span><span>); </span></span></li><li class="alt"><span>    <span class="comment">//4>imagedestroy() 结束图形函数  销毁$image</span><span> </span></span></li><li><span>    imagedestroy(<span class="vars">$image</span><span>); </span></span></li></ol>
登入後複製

其他的两个页面,不许要修改。

\

一般而言,现在就已经够用了。但是就像动漫一样,总会有番外。

那么,我们来个汉字的番外吧。其实我也准备将汉字的验证码放到我的毕业设计里面,虽然现在很流行滑动验证码,但是本人毕竟不是专门学习js的。

而且,还可以和答辩的老师说,我们验证码不需要素材,连图片也是生成的,用自己的知识装13,也没有设么的。 

<ol class="dp-c"><li class="alt"><span><span>php </span></span></li><li><span>    <span class="comment">//11>设置session,必须处于脚本最顶部</span><span> </span></span></li><li class="alt"><span>    session_start(); </span></li><li><span> </span></li><li class="alt"><span>    <span class="comment">//1>设置验证码图片大小的函数</span><span> </span></span></li><li><span>    <span class="vars">$image</span><span> = imagecreatetruecolor(200, 60);         </span></span></li><li class="alt"><span>    <span class="comment">//5>设置验证码颜色 imagecolorallocate(int im, int red, int green, int blue);</span><span> </span></span></li><li><span>    <span class="vars">$bgcolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>,255,255,255); </span><span class="comment">//#ffffff</span><span> </span></span></li><li class="alt"><span>    <span class="comment">//6>区域填充 int imagefill(int im, int x, int y, int col)  (x,y) 所在的区域着色,col 表示欲涂上的颜色</span><span> </span></span></li><li><span>    imagefill(<span class="vars">$image</span><span>, 0, 0, </span><span class="vars">$bgcolor</span><span>); </span></span></li><li class="alt"><span>    <span class="comment">//7>设置ttf字体</span><span> </span></span></li><li><span>    <span class="vars">$fontface</span><span> = </span><span class="string">'FZYTK.TTF'</span><span>; </span></span></li><li class="alt"><span>    <span class="comment">//7>设置字库,实现简单的数字储备</span><span> </span></span></li><li><span>    <span class="vars">$str</span><span>=</span><span class="string">'天地不仁以万物为刍狗圣人不仁以百姓为刍狗这句经常出现在控诉暴君暴政上地残暴不仁把万物都当成低贱的猪狗来看待而那些高高在上的所谓圣人们也没两样还不是把我们老百姓也当成猪狗不如的东西但实在正取的解读是地不情感用事对万物一视同仁圣人不情感用事对百姓一视同仁执子之手与子偕老当男女主人公含情脉脉看着对方说了句执子之手与子偕老女方泪眼朦胧含羞地回一句讨厌啦这样的情节我们是不是见过很多但是我们来看看这句的原句死生契阔与子成说执子之手与子偕老于嗟阔兮不我活兮于嗟洵兮不我信兮意思是说战士之间的约定说要一起死现在和我约定的人都走了我怎么活啊赤裸裸的兄弟江湖战友友谊啊形容好基友的基情比男女之间的爱情要合适很多吧'</span><span>; </span></span></li><li class="alt"><span>    <span class="comment">//str_split()切割字符串为一个数组,一个中文在utf_8为3个字符</span><span> </span></span></li><li><span>    <span class="vars">$strdb</span><span> = </span><span class="func">str_split</span><span>(</span><span class="vars">$str</span><span>,3);     </span></span></li><li class="alt"><span>    <span class="comment">//>11</span><span> </span></span></li><li><span>    <span class="vars">$captcha_code</span><span> = </span><span class="string">''</span><span>; </span></span></li><li class="alt"><span>    <span class="comment">//8>生成随机的汉子</span><span> </span></span></li><li><span>    <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span><4;</span><span class="vars">$i</span><span>++){ </span></span></li><li class="alt"><span>        <span class="comment">//设置字体颜色,随机颜色</span><span> </span></span></li><li><span>        <span class="vars">$fontcolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>, rand(0,120),rand(0,120), rand(0,120));            </span><span class="comment">//0-120深颜色</span><span> </span></span></li><li class="alt"><span>        <span class="comment">//随机选取中文</span><span> </span></span></li><li><span>        <span class="vars">$in</span><span> = rand(0,</span><span class="func">count</span><span>(</span><span class="vars">$strdb</span><span>)); </span></span></li><li class="alt"><span>        <span class="vars">$cn</span><span> = </span><span class="vars">$strdb</span><span>[</span><span class="vars">$in</span><span>]; </span></span></li><li><span>        <span class="comment">//将中文记录到将保存到session的字符串中</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$captcha_code</span><span> .= </span><span class="vars">$cn</span><span>; </span></span></li><li><span>        <span class="comment">/*imagettftext (resource $image ,float $size ,float $angle ,int $x ,int $y,int $color,</span> </span></li><li class="alt"><span><span class="comment">        string $fontfile ,string $text ) 幕布 ,尺寸,角度,坐标,颜色,字体路径,文本字符串</span> </span></li><li><span><span class="comment">        mt_rand()生成更好的随机数,比rand()快四倍*/</span><span> </span></span></li><li class="alt"><span>        imagettftext(<span class="vars">$image</span><span>, mt_rand(20,24),mt_rand(-60,60),(40*</span><span class="vars">$i</span><span>+20),mt_rand(30,35),</span><span class="vars">$fontcolor</span><span>,</span><span class="vars">$fontface</span><span>,</span><span class="vars">$cn</span><span>); </span></span></li><li><span>    } </span></li><li class="alt"><span>    <span class="comment">//11>存到session</span><span> </span></span></li><li><span>    <span class="vars">$_SESSION</span><span>[</span><span class="string">'authcode'</span><span>] = </span><span class="vars">$captcha_code</span><span>; </span></span></li><li class="alt"><span>    <span class="comment">//9>增加干扰元素,设置点</span><span> </span></span></li><li><span>    <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span><200;</span><span class="vars">$i</span><span>++){ </span></span></li><li class="alt"><span>        <span class="comment">//设置点的颜色,50-200颜色比数字浅,不干扰阅读</span><span> </span></span></li><li><span>        <span class="vars">$pointcolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>,rand(50,200), rand(50,200), rand(50,200));         </span></span></li><li class="alt"><span>        <span class="comment">//imagesetpixel &mdash; 画一个单一像素</span><span> </span></span></li><li><span>        imagesetpixel(<span class="vars">$image</span><span>, rand(1,199), rand(1,59), </span><span class="vars">$pointcolor</span><span>); </span></span></li><li class="alt"><span>    } </span></li><li><span>    <span class="comment">//10>增加干扰元素,设置线</span><span> </span></span></li><li class="alt"><span>    <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span><4;</span><span class="vars">$i</span><span>++){ </span></span></li><li><span>        <span class="comment">//设置线的颜色</span><span> </span></span></li><li class="alt"><span>        <span class="vars">$linecolor</span><span> = imagecolorallocate(</span><span class="vars">$image</span><span>,rand(80,220), rand(80,220),rand(80,220)); </span></span></li><li><span>        <span class="comment">//设置线,两点一线</span><span> </span></span></li><li class="alt"><span>        imageline(<span class="vars">$image</span><span>,rand(1,199), rand(1,59),rand(1,199), rand(1,59),</span><span class="vars">$linecolor</span><span>); </span></span></li><li><span>    } </span></li><li class="alt"><span> </span></li><li><span>    <span class="comment">//2>设置头部,image/png</span><span> </span></span></li><li class="alt"><span>    header(<span class="string">'Content-Type: image/png'</span><span>); </span></span></li><li><span>    <span class="comment">//3>imagepng() 建立png图形函数</span><span> </span></span></li><li class="alt"><span>    imagepng(<span class="vars">$image</span><span>); </span></span></li><li><span>    <span class="comment">//4>imagedestroy() 结束图形函数  销毁$image</span><span> </span></span></li><li class="alt"><span>    imagedestroy(<span class="vars">$image</span><span>); </span></span></li></ol>
登入後複製

其他的页面也是不需要修改的。

效果图如下:

\

 



www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1059212.htmlTechArticlephp如何实现验证码 验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。 验证码在表单实...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1658
14
CakePHP 教程
1415
52
Laravel 教程
1309
25
PHP教程
1257
29
C# 教程
1231
24
您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

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

PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

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

PHP行動:現實世界中的示例和應用程序 PHP行動:現實世界中的示例和應用程序 Apr 14, 2025 am 12:19 AM

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

See all articles