驗證碼的實現

來源:互聯網
上載者:User
驗證碼

<?php
/******************************************
認證碼圖片組建檔案
Programmed by SurfChen,http://yubeinet.com
以下define部分可自行修改
******************************************/
define("CON_number",5);//產生的字元數目
define("CON_image_width",100);//圖寬
define("CON_image_height",20);//圖高
define("CON_image_string","0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");//所要建立的驗證字串包含字元
header("Content-type:image/png");//輸出圖象頭資訊
session_start();
if ($_SESSION['num'])
{
unset($_SESSION['num']);//登出上一次的圖片驗證碼
}
$im=imagecreate(CON_image_width,CON_image_height);//建立圖象
$black=imagecolorallocate($im,0,0,0);//建立黑色標誌符
$white=imagecolorallocate($im,255,255,255);//建立白色標誌符
$gray=imagecolorallocate($im,200,200,200);//建立灰色標誌符
imagefill($im,86,30,$black);//填充圖象
for($i=0;$i<500;$i++)
{
$randcolor=imagecolorallocate($im,rand(100,255),rand(100,255),rand(100,255));//建立一個隨機圖象顏色標誌符
imagesetpixel($im, rand(0,CON_image_width),rand(0,CON_image_height),$randcolor);//用上一行建立的標誌符描點,點的座標為隨機
}
for($i=0;$i<6;$i++)
{
imageline($im,rand(0,CON_image_width),rand(0,CON_image_height),rand(0,CON_image_width),rand(0,CON_image_height),$gray);//以隨機座標畫線
}
for($i=0;$i<=CON_number;$i++)
{
$authnum.=substr(CON_image_string,rand(0,61),1);//建立驗證字串
}
$_SESSION['num']=$authnum;//把字串寫入SESSION以待驗證
imagestring($im, 5,10, 0,$authnum,$white);//把字串寫入圖片
imagepng($im);//輸出圖片
imagedestroy($im);//登出圖片資源
exit();//終止指令碼
mssql_init
?>


<?
ob_start()
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<title>實現驗證圖功能[GD+SESSION]</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta name="generator" content="EditPlus" />
<meta name="author" content="surfchen" />
<meta name="keywords" content="yubeinet.com,php,mysql,javacript,xhtml,xml,wml,svg" />
<meta name="description" content="使用GD和SESSION實現PHP裡的驗證圖" />
<link rel="stylesheet" href="index.css" type="text/css" />
</head>
<body>
<?php
session_start();
if (!empty($_SESSION['num']) and !empty($_SESSION['num']) and $_SESSION['num']==$_POST['number']){
echo '成功';
}elseif (!empty($_POST['number'])){
echo "失敗";
}
?>
<img src="image.php" alt="驗證圖" />
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">
<input type="text" name="number" />
<input type="submit" name="submit" value="提交" />
</form>
</body>
</html>



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。